为什么这个简单的 awk 管道不起作用?

为什么这个简单的 awk 管道不起作用?

我正在努力追随回答但我无法让它发挥作用。

我尽可能地简化了它,以尝试弄清楚发生了什么(现在只需在终端运行它):

rsync --progress -iav /my/dir1 /my/dir2 | awk '{ print($0) }'

但它只打印诸如rsync: failed to set times on [file].

我究竟做错了什么?

编辑:经过进一步调查,awk 似乎正在做某种缓冲。这:

for i in 10 20 30; do echo $i; sleep 1; done | awk '{print $0}'

演示了 3 秒后才看到输出的问题。

所以我想问题是如何让 awk 刷新其缓冲区?我试过:

for i in 10 20 30; do echo $i; sleep 1; done | awk '{print($0); fflush()}'

哪个有同样的问题。

答案1

最终使用mawk -Winteractive

相关内容