我现在尝试了一段时间
- 从文件 test.txt 读取(其中有两行“aaaa”和“bbbb”)
- 使用这些行来搜索文件夹及其子文件夹中的字符串
我的解决方案如下所示:
while read line
do echo $line
grep -irl $line /home 2>/dev/null
done < test.txt
如果我$line
用它替换,会发现写入的aaaa
文件,但它不起作用......?aaaa
$line
也许你有想法?
答案1
该grep
实用程序有一个-f
选项,其参数是文件名。-f
告诉grep
从指定文件中读取模式,然后搜索所有模式,就像这些模式是在命令行上单独指定的一样。它与其他选项相结合,例如-r
.
-f
由 POSIX 指定。
GNU Grep 允许将文件指定为-
,因此模式从标准输入读取;POSIX 规定只有文件可以将参数指定为-
标准输入;不需要这样的东西模式文件论点。
如果搜索文件的行是要在输入中查找的字符串(而不是正则表达式),请添加选项-F
(对于固定字符串)。