【发布时间】:2014-01-07 07:48:07
【问题描述】:
我在一个名为 scripts.txt 的文件中有一个文件列表
我只想在 scripts.txt 中包含的文件中 grep 查找“runcob”。我不想在scripts.txt中不包含的其他文件中grep。我该怎么做。请帮忙。如果我们需要一个脚本,我打算使用 ksh
【问题讨论】:
我在一个名为 scripts.txt 的文件中有一个文件列表
我只想在 scripts.txt 中包含的文件中 grep 查找“runcob”。我不想在scripts.txt中不包含的其他文件中grep。我该怎么做。请帮忙。如果我们需要一个脚本,我打算使用 ksh
【问题讨论】:
这就是为什么我们有xargs。
xargs grep 'runcob' <scripts.txt
【讨论】:
遍历文件列表和grep:
while read -r file; do
grep runcob "${file}"
done < scripts.txt
【讨论】:
command < file 执行command 并以file 作为输入。您可能还想参考redirection。
scripts.txt 之后添加> outputfile。
grep 的第一个参数是正则表达式;在这种情况下,文字字符串“runcob”。 (不需要引用不包含任何 shell 元字符的字符串,尽管将它放在引号中是一种很好的形式。)
如果文件名不包含任何空格,它可以很简单
grep runcob $(cat scripts.txt)
【讨论】: