あんまり知られてないような気がするけれど結構便利なcomm
コマンドについてまとめてみます。
commコマンドとは?
comm
コマンドとは、2つのソートされたテキストファイルを比較できるコマンドです。 ファイルを比較して、片方のファイルにしか存在しない行や、両方のファイルに共通して存在する行などを出力することができます。
ためしにうごかしてみる
たとえば以下のようなテキストファイルが存在するとします。
$ cat wawawa.txt AAA BBB CCC DDD EEE
$ cat sasasa.txt BBB CCC FFF
これをcomm
コマンドで比較してみると以下のような出力になります。
$ comm wawawa.txt sasasa.txt AAA BBB CCC DDD EEE FFF
1カラム目(左)がwawawa.txtにのみ存在する行
2カラム目(真ん中)がsasasa.txtにのみ存在する行
3カラム目(右)がwawawa.txtとsasasa.txtに存在する行が出力されています。
オプションは以下のような物があります。
オプション | 説明 |
---|---|
-1 | 1カラム目を出力しない |
-2 | 2カラム目を出力しない |
-3 | 3カラム目を出力しない |
--check-order | ソートされているかどうかを確認する |
--nocheck-order | ソートされているかどうか確認しない |
--output-delimiter=でりみた | カラムを区切る文字列を指定 |
実用的な使い方
おもいついた使い方を書いていきます。
wawawa.txtにしか存在しない行を出力
$ comm -23 wawawa.txt sasasa.txt AAA DDD EEE
sasasa.txtにしか存在しない行を出力
$ comm -13 wawawa.txt sasasa.txt FFF
両方のファイルに存在する行を出力
$ comm -12 wawawa.txt sasasa.txt BBB CCC
おわりに
commコマンドを利用することでかんたんに2つのファイルの比較をすることができました。
diffでこねこねしなくてもいいのでかんたんですね!!!
- 作者: 大角祐介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/06
- メディア: 単行本
- この商品を含むブログ (6件) を見る