我有一个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' )
,但到目前为止我的尝试破坏了转义\n
字符,这让我认为我应该使用awk
或perl
smoehow。
答案1
将要排除的模式列表放入文本文件中:
cat mypatterns.txt
token_1
token_2
现在将第一个 grep 的结果通过管道传输到此表达式:
grep -f mypatterns.txt -v