我有一个脚本需要相当长的时间才能执行。在整个过程中,它不断输出到标准输出。我希望使用诸如 kdialog 或 zenity 之类的图形实用程序在某种进度对话框中以交互方式显示其中一些消息,但这在这里无关紧要,因为我寻求的解决方案不应该依赖于它。
为了做到这一点,我正在尝试以下
<call to actual job> | egrep <regex> | xargs -I{} <call to display utility> {}
问题是,一旦我插入对egrep
输出的调用,就会累积到主要工作完成,然后才有效地通过管道传输到xargs
. 如果我egrep
取出,那么它会按预期工作,并且状态消息会以交互方式传送到xargs
,但随后会显示很多不相关的信息。
我一直在互联网上搜索并阅读手册grep
无济于事,有谁知道我怎样才能实现所需的行为?
实际例子
我相信以下示例的行为类似于我的真实案例。
(sleep 1; echo A; sleep 1; echo 0; sleep 1; echo B) | egrep -i [a-z] | xargs -I{} echo {}