linux - 如何阻止 sed 缓冲?

标签 linux bash sed grep

我有一个写入 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/

相关文章:

sql - 如何从shell提示符将oracle sql脚本文件的参数传递给sqlplus?

shell - 使用 sed 替换变音符号

c++ - 模拟转数字 cplus plus 编程

bash - 如何在 Mac Catalina 上对终端输出进行着色

bash - 为什么 $RANDOM 不是很随机?

regex - 用sed替换超过150000个字符

replace - 递归多行替换: changing copyright headers

linux - 克隆正在运行的进程、windows 或 linux 的实例

linux - 使用 apache 虚拟主机时,谷歌浏览器中的配置 header 显示错误

linux - 如何在linux命令中检查指定范围内每一天的日期输出