Bash 使用另一个文本中的字符串过滤文本内容

Bash 使用另一个文本中的字符串过滤文本内容

到现在为止我每次都用过滤,grep命令

[root@host tests]# cat e
1
2
3
4
5
[root@host tests]# cat e | grep -Ev '2|3' > filtered.txt

[root@host tests]# cat filtered.txt
1
4
5
[root@host tests]#

但现在我有一个大文件,需要使用另一个文件中的数百个字符串进行过滤。我该怎么做?

答案1

听起来你可以只使用 grep 和以下选项

   -f FILE, --file=FILE
          Obtain patterns from FILE, one per line.  If this option is used multiple times or is combined with the -e (--regexp) option, search for all patterns given.  The empty file contains zero patterns, and therefore matches
          nothing.

您还需要同时使用-F(在比较中使用模式作为普通字符串,而不是正则表达式)和-x(比较完整的行,而不是子字符串)。如果不是-x,则-w(仅比较整个单词)。

相关内容