如何将Bash命令的输出作为参数传递给另一个命令?

4

我有一个程序,可以返回文件名列表。我需要将这些文件的内容传递给另一个程序。

我知道如何使用cat来传递内容:

cat file1 file2 file3 | some_program

我想要做的是类似于:
list=`get_file_list`
cat ${list} | some_program

尽管执行以上操作只会传递列表变量的内容,而不是文件的内容。

不,cat ${list} 连接 $list 中所列出的文件的内容。如果这不是你想要的,我就不明白你的问题了。 - tripleee
echo "$list" | some_program 将变量的内容传递给程序的标准输入。 - Dennis Williamson
1个回答

12

如果要将一个程序的输出传递给另一个程序,您可以使用 xargs 命令,例如:

     find . -name "myfile*" -print | xargs grep "myword" $1

这个命令会在名为myfile*的文件中查找指定关键字。


1
如果这是正确的答案,那么在这种特定情况下,some_program \get_file_list`` 是更简单的实现方式。 - tripleee
是的!谢谢。如果有错误请纠正我;一般格式大致如下:.... | xargs $1 command $1 ... - pedro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接