複数のパターンを含むファイルから行を検索および削除する

複数のパターンを含むファイルから行を検索および削除する

文字列リストがあり、この文字列を含むファイルから行を見つけて削除したいと思います。文字列リストの簡単な例を以下に示します。

ファイル

1月 32,33
2月 7,26
2月 7,27
2月 7,28

このファイルの簡単な例は次のとおりです。

ファイルA

1月32,33が大好きです。
2Mo 7,26 好きです。
こんにちは1,2はあまり面白くありません。
Ab 3,4 私は愚かです。

私の予想結果は次のとおりです。

こんにちは1,2はあまり面白くありません。
Ab 3,4 私は愚かです。

次のコマンドを試しましたが、残念ながら失敗しました。

grep -f fileS fileA|awk '{print $0}'

関連する質問を見つけましたが、ほとんどが特定のパターンを持つ行を削除することに焦点を当てます。この問題を解決する方法を知っている人はいますか?ありがとうございます。

ベストアンサー1

AWKコードは次のとおりです。

NR == FNR {
    line[$0]++;
    next;
}
!line[$1" "$2]

一行で:

awk 'NR == FNR {line[$0]++; next;} !line[$1" "$2]' file_S file_A

おすすめ記事