次のように、リスト名が2つある場合にファイルを確認する方法を尋ねたい
cat /data/file1/ab.txt
aa
bb
cc
dd
ee
cat /data/file2/cd.txt
cc
dd
ee
aa
zz
xx
yy
そして、次のような出力が必要です:
zz
xx
yy
sort ab.txt > /tmp/file1
sort cd.txt > /tmp/file2
comm -13 /tmp/file1 /tmp/file2
プログラムはcomm
2 つのファイルを比較し、それぞれに共通または固有の行を表示します。-13
ファイル 1 に固有で共通の行を省略することを意味します。
次のものも使用できますawk
。
awk 'NR==FNR{a[$1];next}!($1 in a)' ab.txt cd.txt
次のものも使用できますgrep
。
$ grep -vf ab.txt cd.txt
zz
xx
yy
-f
grep
からパターンを取得するように指示し、一致ab.txt
を-v
反転します。