是否有支援無緩衝輸出的 cat 替代方案?

是否有支援無緩衝輸出的 cat 替代方案?

我正在尋找一個程序,可以將標準輸入複製到標準輸出,同時顯示控製字元(如cat -v)並且無需等待 EOF (輸入來自 a tail -f)。我有 GNU|Linux;安裝cat的會忽略該-u標誌。

答案1

GNUcat忽略,-u因為它的輸出是始終無緩衝。因此,當您使用 請求無緩衝輸出時-u,您會得到它(但即使您不要求它,您也會得到它)。

GNUtail具有相同的、始終無緩衝的行為。

為了證明這一點,我在一個 shell 中做了:

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

每秒添加“hello”一詞,後面跟著一個製表符(沒有換行符)

在另一個 shell 中我做了(cat -T類似於cat -v-- 它將選項卡顯示為 ^I):

tail -f testtail | cat -T

這給了我:

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

每秒更新。

答案2

BSDcat-u選項會停用輸出緩衝。從man cat

-u      Disable output buffering.

相關內容