【发布时间】:2013-06-25 10:27:46
【问题描述】:
假设我有 2 个 bash 命令:
$ A
apple
pear
lemon
A 写得非常快,但在“lemon”成功终止后等待 1 分钟。
我希望将每一行作为 B 的输入单独并立即处理。 但是我不想等待 A 终止,而是为每个快速出现的行调用一个新的 B。然后 B 会在 A 的输出中添加一些东西让我们说:
$ A <for every line appearing> B
1 apple
1 pear
1 banana
如何用 bash 做到这一点?
更新
这里是原始命令:
$sudo alive6 -l eth1 -W 0.2 | sed -e 's/Alive: \(.*\) \[ICMP echo-reply\]/\1%eth0/' -e'/Scanned.*/d' -e'//d'
立即响应,而
$sudo alive6 -l eth1 -W 0.2 | sed -e 's/Alive: \(.*\) \[ICMP echo-reply\]/\1%eth0/' -e'/Scanned.*/d' -e'//d' | while read l; do echo $l; done
似乎在等待alive6完成
【问题讨论】:
-
这是一个有用的记录,我将它添加到我的收藏夹中。顺便说一句,我猜你没有办法修改
A的行为?
标签: performance bash shell unix pipe