09-Linux & Virtual Box

Virtual Box & Linux(Part.11)| Linux テキスト処理(3)| 現役エンジニア&プログラミングスクール講師

目標

代表的なテキスト処理のコマンドを確認して利用できる。

テキスト処理コマンド(Part.2)

テキスト処理コマンド(Part.2)

テキスト処理コマンド(Part.2)

各コマンドのオプションについての詳細は参考資料をご確認下さい。ここでは「何をするものなのか」「どんな記述ルールがあるのか」のみ取り上げています。利用方法については記事内の「実際の操作」で利用しているものについて解説しています。

trコマンド

ファイル内の文字列を変換するコマンドです
文法:
tr [省略できるOP] 文字列パターン1 [省略可能文字列パターン2]
※OP:オプションのことです。
コマンドの参考資料はこちら

「tr」は「translate」の略です。オプションには「d」「s」をよく利用します。
「d」:指定文字の集合何れかに合致したら削除する
「s」:繰り返し文字を1文字にする

trコマンドは基本的には1文字単位に対する処理です。クラスを利用すると全ての小文字を大文字に変更できたりは可能です。

但し、指定した文字列単位の処理はsedコマンドを利用します。

trコマンドには文字クラスを用いた変換というものがあります。

文字クラス操作内容
[:alpha:]アルファベットを指定
[:lower:]アルファベットの小文字を指定
[:upper:]アルファベットの大文字を指定
[:digit:]数値を指定
[:alumn:]英文字・数値を指定
[:space:]スペースを指定
[:xdigit:]16進数を指定

trコマンドでファイル内の文字列を一時変更して表示してみます。一時的な表示なので元のファイルには変更の影響はありません。

[rocky001@rockylinux001 ~]$ cat rocky1.txt | tr ‘a-z’ ‘A-Z’

元のファイルを再度catコマンドで開いてみても中身にへ影響はありません。
[rocky001@rockylinux001 ~]$ cat rocky1.txt

trコマンドではクラスを利用できます。
[rocky001@rockylinux001 ~]$ cat rocky1.txt | tr [:lower:] [:upper:]

オプション「d」を用いてアルファベットと指定した記号文字(今回は「-」「.」「:」)を非表示にしてみたいと思います。rocky3.txtの中身を確認します。

[rocky001@rockylinux001 ~]$ cat rocky3.txt


[rocky001@rockylinux001 ~]$ cat rocky3.txt | tr -d [:alpha:]’-.:’

sortコマンド

ファイル内の行を並び替えるコマンドです
文法:
sort [省略できるOP] ファイル名
※OP:オプションのことです。
コマンドの参考資料はこちら

sortコマンドでよく利用するオプションは次の通りです。
「b」:先頭が空白の場合、その空白を無視します。
「f」:大文字と小文字を区別しません。
「r」:降順に並び替えます。(つけなければ昇順)
「n」:数字を数値として認識します。

sortコマンドで昇順と降順の並び替えをしてみたいと思います。まずは昇順の並び替えです。

[rocky001@rockylinux001 ~]$ sort rocky1.txt

[rocky001@rockylinux001 ~]$ sort -r rocky1.txt

joinコマンド

2つのファイルを比較して共通するフィールド(列)同士で連結するコマンドです
文法:
join [省略できるOP] ファイル名1 ファイル名2
※OP:オプションのことです。
コマンドの参考資料はこちら

joinコマンドではオプションに「i」「j」をよく利用します。
「i」:大文字と小文字を区別しません。
「j」:連結する列が何列目かを指定します。
「-1 列数」:1つ目のファイルの指定列数で比較
「-2 列数」:2つ目のファイルの指定列数で比較

ファイルの並び替えとフィールドに番号を付加します。

[rocky001@rockylinux001 ~]$ sort rocky1.txt > sortrocky1.txt
[rocky001@rockylinux001 ~]$ cat -n sortrocky1.txt > nusortrocky1.txt
[rocky001@rockylinux001 ~]$ cat nusortrocky1.txt

[rocky001@rockylinux001 ~]$ sort rocky2.txt > sortrocky2.txt
[rocky001@rockylinux001 ~]$ cat -n sortrocky2.txt > nusortrocky2.txt
[rocky001@rockylinux001 ~]$ cat nusortrocky2.txt

両ファイルのフィールド(1列目で結合しています。)「j」オプションを利用すると比較するフィールドを変更できます。(または「-1 列数」や「-2 列数」で指定できます。)

[rocky001@rockylinux001 ~]$ join nusortrocky1.txt nusortrocky2.txt

splitコマンド

ファイルを指定した行数やサイズに分割するコマンドです
文法:
split [省略できるOP] 分割するファイル [出力先ファイル(省略可)]
※OP:オプションのことです。
コマンドの参考資料はこちら

splitコマンドではオプションに「b」「l」「n」をよく利用します。
「b」:byte単位で分割します。
(単位の指定はk:キロバイト・m:メガバイト)
「l」:指定した行数で分割します。
「n」:指定した数にファイルを分割します。

splitコマンドでファイルを分割して更に分割したファイルをひとつにまとめようと思います。分割するファイルの中身を確認します。catコマンドで「unsortrocky1.txt」を確認すると30行あるので15行ずつ分けてみようと思います。

[rocky001@rockylinux001 ~]$ split -l 15 nusortrocky1.txt splitfile

lsコマンドでディレクトリ内を確認すると「splitfie」と指定した文字列以降に「aa」「ab」が追加されてファイルが保存されています。このファイルの中身を確認してみます。

次のように15行ずつ中身が分割されています。

分割したファイルをひとつにする場合はcatコマンドとリダイレクトを利用します。

[rocky001@rockylinux001 ~]$ cat splitfilea* > mergesplitfile.txt
[rocky001@rockylinux001 ~]$ cat mergesplitfile.txt

uniqコマンド

ファイル内の重複行を出力、もしくは重複行以外を出力するコマンドです
文法:
uniq [省略できるOP] 利用するファイル名 [出力先ファイル名(省略可)]
※OP:オプションのことです。
コマンドの参考資料はこちら

uniqコマンドではオプションに「d」「u」をよく利用します。
「c」:出力した回数を数えます。
「d」:重複行を出力します。
「i」:大文字と小文字を区別しません。
「u」:重複行以外を出力します。
※必要があればuniqコマンドの前にsortコマンドを利用してファイルを並び替えます。

uniqコマンドは重複が続いている行をひとまとまりにします。

内容が共通でも行が飛び飛びになっているとまとめる部分も飛び飛びになってしまいます。

wcコマンド

ファイルのサイズに関する情報を出力するコマンドです
文法:
wc [省略できるOP] ファイル名
※OP:オプションのことです。
コマンドの参考資料はこちら

wcコマンドではオプションに「c」「m」「l」「w」をよく利用します。
「c」:byte数を表示します。
「m」:文字数を表示します。
「l」:改行数(行数)を表示します。
「w」:単語の数を表示します。

ここではwcコマンドでファイルの行数を表示してみます。

[rocky001@rockylinux001 ~]$ wc -l rocky1.txt

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
09-Linux & Virtual Box

Virtual Box & Linux(Part.1)| Virtual Boxのインストール(Windows版)| 現役エンジニア&プログラミングスクール講師

2023年4月16日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.12)| Linux テキスト処理(4)| 現役エンジニア&プログラミングスクール講師

2023年4月30日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.6)| Linux viエディタの利用方法(1)| 現役エンジニア&プログラミングスクール講師

2023年4月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.10)| Linux テキスト処理(2)| 現役エンジニア&プログラミングスクール講師

2023年4月28日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.23)| Linux USBメモリ内でのパーティショ作成とファイルシステム作成 | 現役エンジニア&プログラミングスクール講師

2023年5月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.15)| Linux ユーザー管理(3)| 現役エンジニア&プログラミングスクール講師

2023年5月7日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site