0

テキスト ファイルにメールのリストが 2 つあります。

email.txt - 私のニュースレターを購読している人々 blacklist.txt - 購読をやめた人々

現在、ニュースレターのソフトウェアを変更中です。明らかに、購読をやめることにした人々にメールを送りたくありません。コマンド ラインを使用して、blacklist.txt にリストされている電子メールのいずれかが現在 email.txt ファイルにあるかどうか、およびそれらを削除するかどうかを確認する方法はありますか?

注: すべてのメールは別の行にあります。sortandを使用して重複を削除する方法は知っていますuniqが、それでも少なくとも 1 つの重複がファイルに残ります。blacklist.txt に含まれる電子メールを email.txt から完全に削除し、クリーンな電子メール リストを clean.txt に出力する必要があります。

助けてくれてありがとう!

4

2 に答える 2

1

これに使用できますgrep

grep -vwF -f blacklist.txt emails.txt

emails.txtにない行のみが表示さ れblacklist.txtます。

  • grep -v見つかった結果を反転します。
  • grep -f比較するパターンとしてファイルを取得します
  • grep -w完全な単語を比較します
  • grep -F完全一致の文字列
于 2013-04-12T08:18:47.533 に答える