目標
代表的なテキスト処理のコマンドを確認して利用できる。
テキスト処理コマンド(Part.2)
テキスト処理コマンド(Part.2)
テキスト処理コマンド(Part.2)
trコマンド
ファイル内の文字列を変換するコマンドです。
文法:
tr [省略できるOP] 文字列パターン1 [省略可能文字列パターン2]
※OP:オプションのことです。
コマンドの参考資料はこちら
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コマンドで昇順と降順の並び替えをしてみたいと思います。まずは昇順の並び替えです。
[rocky001@rockylinux001 ~]$ sort rocky1.txt
[rocky001@rockylinux001 ~]$ sort -r rocky1.txt
joinコマンド
2つのファイルを比較して共通するフィールド(列)同士で連結するコマンドです。
文法:
join [省略できるOP] ファイル名1 ファイル名2
※OP:オプションのことです。
コマンドの参考資料はこちら
ファイルの並び替えとフィールドに番号を付加します。
[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コマンドでファイルを分割して更に分割したファイルをひとつにまとめようと思います。分割するファイルの中身を確認します。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コマンドは重複が続いている行をひとまとまりにします。
wcコマンド
ファイルのサイズに関する情報を出力するコマンドです。
文法:
wc [省略できるOP] ファイル名
※OP:オプションのことです。
コマンドの参考資料はこちら
ここではwcコマンドでファイルの行数を表示してみます。
[rocky001@rockylinux001 ~]$ wc -l rocky1.txt
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。