テキストファイルに表示されるコマンド出力行をフィルタリングする方法は?

テキストファイルに表示されるコマンド出力行をフィルタリングする方法は?

禁止された行を含むテキストファイルがあるとしますforbidden.txt。テキストファイル内のコマンド出力のすべての行をフィルタリングする簡単な方法は何ですか?

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

答え1

grep次のように使用してください。

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

長いオプションのリストは次のことをgrep意味します。

  • -v一致の意味を裏返します。つまり、線を探します。いいえマッチ。
  • -xパターンマッチング時にパターンマッチングが必要ワイヤーつまり、行のどこでも発生しません。
  • -Fパターンを一致させるときは、次のように処理します。固定文字列つまり、正規表現ではありません。
  • -f与えられたファイルからパターン()を読み込みますforbidden.txt

その後、パイプで接続するか、sort必要な操作を実行してください。

関連情報