他のファイルのキー値に基づいてファイルから行を削除する方法

他のファイルのキー値に基づいてファイルから行を削除する方法

ファイル1があります。

1   a   aa
2   b   bb
3   a   aa
4   b   bb
5   a   aa
6   b   bb
7   a   aa
8   b   bb

ファイル2:

1
2
5

file1の値がfile2にあるfile1のすべての行を削除する必要があります。

ベストアンサー1

sort -bたとえば、2つのファイルが最初の列でアルファベット順に並べられているとします。

$ join -v 1 file1 file2
3 a aa
4 b bb
6 b bb
7 a aa
8 b bb

これはユーティリティを使用して、最初の列がの値と一致しないすべての行をjoin抽出します。file1file2

デフォルトの動作は、join2つのファイルの最初の列に基づいてINNER JOINを生成することですが、最初のファイル-v 1からペアリングできない行を取得します。

おすすめ記事