この単純な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

関連情報