gpt4 book ai didi

bash - 为什么我不能将输出从 sed 重定向到一个文件

转载 作者:行者123 更新时间:2023-11-29 09:40:28 25 4
gpt4 key购买 nike

我正在尝试运行以下命令

./someprogram | tee /dev/tty | sed 's/^.\{2\}//' > output_file

但是我去查看的时候文件总是空白。如果我从命令末尾删除 > output_file,我可以毫无问题地看到 sed 的输出。

有什么方法可以将此命令中 sed 的输出重定向到文件吗?

最佳答案

使用 -u 标志从 sed 命令中删除输出缓冲,并确保您要记录的内容不在 stderr 上

-u, --unbuffered

  load minimal amounts of data from the input files and flush the output buffers more often

最终命令:

./someprogram | tee /dev/tty | sed -u 's/^.\{2\}//' > output_file

流会发生这种情况(通常是程序在其整个生命周期内将输出发送到标准输出)。

sed/grep 和其他命令在这些情况下会进行一些缓冲,您必须明确禁用它才能在程序仍在运行时获得输出。

关于bash - 为什么我不能将输出从 sed 重定向到一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com