バッファなし出力をサポートする cat の代替品はありますか?

バッファなし出力をサポートする cat の代替品はありますか?

cat -v制御文字 ( など) を表示しながら、EOF (入力は から) を待たずにstdin を stdout にコピーするプログラムを探していますtail -f。GNU|Linux を使用していますが、catインストールされている はフラグを無視します-u

答え1

GNUはcat出力-u常にバッファなししたがって、 でバッファリングされていない出力を要求すると-u、それが取得されます (ただし、要求していない場合も取得されます)。

GNU もtail、常にバッファリングされない同じ動作をします。

これを証明するために、私は 1 つのシェルで次の操作を実行しました。

while :; do echo -ne "hello\t"; sleep 1;done > testtail

これは、1秒ごとに「hello」という単語とそれに続くタブを追加します(改行なし)。

別のシェルで実行した (は、タブを ^I として表示する )cat -Tと似ています。cat -v

tail -f testtail | cat -T

つまり、次のようになります。

hello^Ihello^Ihello^Ihello^I ...

毎秒更新されます。

答え2

BSDcatのオプションにより-u出力バッファリングが無効になりました。man cat

-u      Disable output buffering.

関連情報