何らかの理由で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