【问题标题】:how do I pass the output of a bash command as parameters to another? [duplicate]如何将 bash 命令的输出作为参数传递给另一个? [复制]
【发布时间】:2012-07-08 01:01:12
【问题描述】:

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

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

cat file1 file2 file3 | some_program

我想做的是这样的:

list=`get_file_list`
cat ${list} | some_program

虽然执行上述操作只会传递列表变量的内容,而不是文件的内容。

【问题讨论】:

  • 不,cat ${list} 连接了$list 中命名的文件的内容。如果这不是你想要的,我不明白你的问题。
  • echo "$list" | some_program 会将变量的内容传递给程序的标准输入。

标签: bash


【解决方案1】:

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

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

这个搜索名为 myfile* 的文件并在其中查找密钥。

【讨论】:

  • 如果这是一个正确的答案,那么 some_program `get_file_list` 在这种特殊情况下是一种更简单的方法。
  • 是的!谢谢。如果错了,请纠正我;一般格式类似于: .... | xargs $1 命令 $1 ...
猜你喜欢
  • 2014-12-03
  • 2016-01-30
  • 2022-12-08
  • 2017-08-30
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多