我正在努力追随这回答但我无法让它发挥作用。
我尽可能地简化了它,以尝试弄清楚发生了什么(现在只需在终端运行它):
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