複数の Grep 結果パイプライン

複数の Grep 結果パイプライン

結果があり、grep特定のフィルタタグでいくつかの行をフィルタリングしたいと思います。たとえば、次の行が与えられると、希望の出力はですthis is a desired line

This is a desired line
This is a desired line with filter token_1
This is a desired line with filter token_2
this is a undesired line

コマンドが実行されますgrep -rnw . -e "desired"

This is a desired line
This is a desired line with filter token_1
This is a desired line with filter token_2

token_1タグの合計で行をフィルタリングする方法はtoken_2?どういうわけか配列関数を使用しているようですが、grep_ignores=( 'token_1' 'token_2' )これまでに試した結果、エスケープ文字が壊れたため、またはsmoehowを\n使用する必要があると思います。awkperl

答え1

除外するパターンのリストをテキストファイルに配置します。

cat mypatterns.txt
token_1
token_2

次に、最初のgrepの結果を次の式にパイプします。

grep -f mypatterns.txt  -v

関連情報