cmd1 | cmd2
只能以cmd1输出作为参数调用cmd2一次。我想要的是逐个调用cmd2,每行cmd1输出作为参数。也许看起来像:
cmd1 | map cmd2
我知道我可以自己写一个,只想知道是否有内置支持?
答案 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