配管中にsedが正しく機能しない

配管中にsedが正しく機能しない

何らかの理由でSSHからsedにコマンド出力をパイプするときは、ライブ出力はありません。

ssh someuser@somehost 2>&1 | sed -e "s/\[32//g" | tee logging

出力ditに改行文字がないようですが、sedコマンドを削除して実行すると、次のようになります。

wc -l logging

返す正しい数値である6を返します。私がここで何を見逃しているのか知っている人はいますか?

[編集] 以下のことを言及することを完全に忘れてしまいました。実行中

ssh someuser@somehost 2>&1 | sed -e "s/\[32//g"

すべての値は問題なく返されますが、一度ミックスにteeを追加すると、^ Cを押すまで出力が得られません... stdoutリダイレクトも機能しません(ssh someuser@somehost 2>&1 | 32//g"> ファイル)。 sshとteeだけがうまくいきます。

ベストアンサー1

ストリームエディタ、sed、バッファ、「-u」、または「--unbuffered」で無効になります。

tail -f some/log_file | sed -u 's/foo//g' | grep bar

おすすめ記事