それぞれ 15 列のタブ区切りファイルが 2 つあり、行数は n および m です。
ファイル 1 の行数はファイル 2 の行数よりも多く、ファイル 1 にはファイル 2 に存在しない 15 行があるとします。
これらの行を見つけるにはどうすればよいですか?
ありがとうございました
このcomm
コマンドは、いずれかのファイルに固有の行、または両方に共通の行を見つけます。
comm -23 <( sort file1 ) <( sort file2 )
file1 のみの行を出力します (file2 のみの行と共通行は、 オプション-2
と-3
オプションによって抑制されます。ファイルはソートされている必要があります。両方が同じキーでソートされている限り、ファイルがどのようにソートされているかは問題ではありません。そして同じように。
joinコマンド、特に-aオプションが役立つ場合があります。
-a FILENUM は、FILE1 または FILE2 に対応する、FILENUM が 1 または 2 であるファイル FILENUM からのペアにならない行を出力します。
これは役に立ちますか?
awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1