2つの異なるファイルがあります。
ファイル1
2
4
6
8
10
12
ファイル2
2
3
5
6
10
12
2つのファイルを比較してファイル1にはあるがファイル2にはない出力データを取得したいと思います。
出力
4
8
以下のコマンドを使用していますが、目的の出力を取得できませんでした。
通信-23ファイル1ファイル2
答え1
正しく機能するには、comm
両方のファイルを数値順ではなくアルファベット順に並べる必要があります。comm
電話する前にファイルを並べ替えることができます。
sort -o file1 file1
sort -o file2 file2
それから:
$ comm -23 file1 file2
4
8
comm
または、シェルがプロセス置換をサポートしている場合は、次の呼び出し中にファイルをソートできます。
$ comm -23 <( sort file1 ) <( sort file2 )
4
8
答え2
グレブを使用できます
grep -F -x -f 'File2' -v 'File1'
File2(-f)の固定文字列(-F)のパターン
-x
行全体を一致させるために使用されます。それ以外の場合、File1の「0123」はFile2の「12」のために出力から除外されます。
同様の直線を見つけ、(-v) を使用して逆関数を検索します。