テキストファイルで発生するコマンド出力の行を除外する方法は?


15

禁止行のテキストファイルがあるとしますforbidden.txt。テキストファイルに存在するコマンド出力のすべての行をフィルター処理する簡単な方法は何ですか?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort

4
fgrep -vxf forbidden.txt input.txt | sort
桂佐藤

回答:


26

次のgrepように使用します。

$ grep -v -x -F -f forbidden.txt input.txt

grepという意味のオプションの長いリスト

  • -v一致の感覚を逆にします。つまり、一致しないものを探します。
  • -xパターンに一致する場合、パターンが行全体に一致すること、つまり、行のどこにも一致ないことを要求します。
  • -Fパターンに一致する場合、それを固定文字列として、つまり正規表現としてではなく扱います。
  • -f指定されたファイル(forbidden.txt)からパターンを読み取ります。

次に、それを、sortまたはそれを使ってやりたいことをパイプします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.