我有一个写入 fd3 的程序,我想用 grep 和 sed 处理该数据。到目前为止,代码看起来是这样的:
exec 3> >(grep "good:"|sed -u "s/.*:\(.*\)/I got: \1/")
echo "bad:data1">&3
echo "good:data2">&3
在我做之前没有输出
执行 3>&-
然后,我想要的一切终于如期而至:
I got: data2
如果我只使用 grep 或只使用 sed,它似乎会立即回复,但混合使用它们似乎会导致某种缓冲。如何从 fd3 获得即时输出?
最佳答案
我想我找到了。出于某种原因,grep 不会自动进行行缓冲。我向 grep
添加了一个 --line-buffered
选项,现在它立即响应。
关于linux - 如何阻止 sed 缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258177/