Linuxコマンド辞典 commコマンド(テキスト処理)
ソートされた2つのファイルを行単位で比較する「comm」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
ソートされた2つのテキストファイルを行単位で比較し、違いを「ファイル1にも含まれる行」、「ファイル2のみに含まれる行は出力しない」、「両方のファイルに含まれる行は出力しない」の3列で出力します。
書式
$ comm [オプション] ファイル名1 ファイル名2
オプション
-1 | ファイル名1にのみ含まれる行を出力しない |
-2 | ファイル名2にのみ含まれる行を出力しない |
-3 | 両方に含まれる行を出力しない |
–check-order | ソートされているかチェックする |
–nocheck-order | ソートされているかチェックしない |
–output-delimiter=文字 | 列の区切り文字を指定する |
2つのファイルを比較する
$ comm ファイル名1 ファイル名2
実行結果
[sunarin@localhost work]$ cat comm1.txt
A
B
C
D
F
[sunarin@localhost work]$ cat comm2.txt
A
B
C
D
E
G
[sunarin@localhost work]$ comm comm1.txt comm2.txt
A
B
C
D
E
F
G
[sunarin@localhost work]$
ファイル名1にのみ含まれる行を表示しない
ファイル名1にのみ含まれる行を表示しない場合は、「-1」オプションを使用します。出力結果は2列で表示されます。
$ comm -1 ファイル名1 ファイル名2
実行結果
[sunarin@localhost work]$ comm -1 comm1.txt comm2.txt
A
B
C
D
E
G
[sunarin@localhost work]$
ファイル名2にのみ含まれる行を表示しない
ファイル名2にのみ含まれる行を表示しない場合は、「-2」オプションを使用します。出力結果は2列で表示されます。
$ comm -2 ファイル名1 ファイル名2
実行結果
[sunarin@localhost work]$ comm -2 comm1.txt comm2.txt
A
B
C
D
F
[sunarin@localhost work]$
両方に含まれる行を表示しない
ファイル名1及びファイル名2両方に含まれる行を表示しない場合は、「-3」オプションを使用します。出力結果は2列で表示されます。ファイル名1とファイル名2の差分を表示する場合に使用します。
$ comm -3 ファイル名1 ファイル名2
実行結果
[sunarin@localhost work]$ comm -3 comm1.txt comm2.txt
E
F
G
[sunarin@localhost work]$