![Bashスクリプトを使用せずにドメインリストをgrepする方法[閉じる]](https://linux33.com/image/150367/Bash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%9B%E3%81%9A%E3%81%AB%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92grep%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
会社はメーリングリストに入れたくないワンタイムEメールやその他のEメールリストを受け取り、それを削除してもらいました。わかりましたgrep -v
。awk !/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