使用 find 我创建一个文件,其中包含使用特定关键字的所有文件:
find . -type f | xargs grep -l 'foo' > foo.txt
我想在foo.txt中获取该列表,并且可能使用该列表运行一些命令,即在文件中包含的列表上运行ls
命令。
答案 0 :(得分:3)
您无需xargs
即可创建foo.txt
。只需使用-exec
执行命令,如下所示:
find . -type f -exec grep -l 'foo' {} \; > foo.txt
然后,您可以通过循环文件对文件运行ls
:
while IFS= read -r read file
do
ls "$file"
done < foo.txt
也许它有点难看,但这也可以做到:
ls $(cat foo.txt)
答案 1 :(得分:2)
您可以像这样使用xargs
:
xargs ls < foo.txt
xargs的优势在于它将使用多个参数执行命令,这比使用循环每个参数执行一次命令更有效。例如。