grep -rhi 文件中的多个字符串

grep -rhi 文件中的多个字符串

好的,我知道我能做到

grep -rhI "string1" .

但我可以从 .txt 文件中获取字符串吗,这样每个字符串都在一个新行上,例如

string1
string2
string3

因为我有很多字符串需要处理

grep rhI "string1|string2|string3"

会很痛苦..

答案1

将所有字符串放入一个文件中,如下所示:

$ cat strings
string1
string2
string3

并执行:

$ grep -rhIoFf strings 

编辑

如果它不完全是string1您需要的输出(-o 的效果),请继续阅读


将文件字符串中的字符串列表(如果它们没有空格或换行符)转换为用 分隔的一个字符串|

filter=$(printf "%s|" $(cat strings))

然后,使用该字符串作为 grep 的过滤器:

grep -rhIE "${filter%?}"

相关内容