在bash中有管道图吗?

时间:2011-03-24 06:36:08

标签: bash

cmd1 | cmd2

只能以cmd1输出作为参数调用cmd2一次。我想要的是逐个调用cmd2,每行cmd1输出作为参数。也许看起来像:

cmd1 | map cmd2

我知道我可以自己写一个,只想知道是否有内置支持?

4 个答案:

答案 0 :(得分:3)

for i in `cmd1`; do cmd2 $i; done

应该这样做。

答案 1 :(得分:2)

cmd1 | while read x
do
  cmd2 $x
done

答案 2 :(得分:2)

cmd1 | xargs -l cmd2

这是我最喜欢的方式。感谢Paulo Ebermann!

答案 3 :(得分:0)

使用xargs

cmd1|xargs cmd2

例如:

ls xyz*|xargs grep "abc"
将在名称以xyz

开头的所有文件中搜索

abc