【问题标题】:Can I get the iterator / iterated variable from xargs?我可以从 xargs 获取迭代器/迭代变量吗?
【发布时间】:2018-03-06 14:25:45
【问题描述】:
./script1 | xargs -L1 ./script2 {}

script1 给了我几行输出,我想将每一行输出传递给script2

现在,它正在运行script2,没有任何参数。

如何为script2 提供xargs 获得的每一行的值?我以为{} 就是那个变量。

【问题讨论】:

  • 我建议删除{}
  • 当我删除 {} 时,它就像 script2 没有输出一样运行。

标签: bash parameters iterator pipe xargs


【解决方案1】:
  • 使用xargs-I 选项将每行输出传递到 script2 分别如

./script2 <line1> ./script2 <line2> ./script2 <line3>

./script1 | xargs -I {} ./script2 {}
  • 从脚本中删除 {} 以将每一行输出传递到 script2 同在 - ./script2 &lt;line1&gt; &lt;line2&gt; &lt;line3&gt;

./script1 | xargs -L1 ./script2

【讨论】:

  • ./script1 | xargs -I {} ./script2 {} 当我这样做时,它运行 script2 就好像它没有输出一样,但它运行它 x 次,其中 x 是脚本 1 中的行数。
  • ./script2 &lt;line1&gt; ./script2 &lt;line2&gt; ./script2 &lt;line3&gt;你说得对,这就是我想要的行为。
  • 好的。它不适合你吗?因为当我用我的示例脚本进行测试时它工作得很好。
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 2018-02-16
  • 2011-01-03
  • 2011-12-22
  • 2011-09-22
  • 2011-03-26
相关资源
最近更新 更多