Bashスクリプトを使用せずにドメインリストをgrepする方法[閉じる]

Bashスクリプトを使用せずにドメインリストをgrepする方法[閉じる]

会社はメーリングリストに入れたくないワンタイムEメールやその他のEメールリストを受け取り、それを削除してもらいました。わかりましたgrep -vawk !/xxx/'しかし、これは彼らが望んでいない1000の電子メールドメインのリストです。 Bash スクリプトを使用できますが、一度に 1 つずつ並べ替え、まだ手動で並べ替える必要があります。どんなアイデアでも大歓迎です

答え1

私が正しく理解したら、メーリングリストファイルがあります。

$ cat mail_list
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

ブラックリストファイルがあります。

$ cat blacklist
[email protected]
[email protected]

新しいメーリングリストファイルを作成し、ブラックリストからメールアドレスを削除しますか?

ブラックリストファイルの使用grep:

-f ファイル、 --file=ファイル

ファイルから1つ以上の改行で区切られたパターンを読み取ります。空のパターンラインはすべての入力ラインと一致します。改行はパターンの一部とは見なされません。ファイルが空の場合、一致するものはありません。

$ grep -vxFf blacklist mail_list
[email protected]
[email protected]
[email protected]

新しいメーリングリストを作成するには、それをファイルにリダイレクトできます。たとえば、次のようになります。

$ grep -vxFf blacklist mail_list > new_mail_list

その後、これを使用して以前のメーリングリストを上書きできます。

$ mv new_mail_list mail_list

関連情報