trに-uを追加するのはいつ役に立ちますか?

trに-uを追加するのはいつ役に立ちますか?

このコマンドのパラメータの1つtrは次のとおりです。

-u すべての出力はバッファリングされないことが保証されます。

どのような状況で出力をバッファリングしないのが最善ですか?

-uたとえば、各行を長くしたい場合は?

-uたとえば、メモリが制限されている場合は何を使うべきですか?

たとえば、パイプawk(ファイルを1行ずつ処理)すると、バッファリングされた出力を使用する方が良いという意味ですか?

答え1

バッファされていない出力は効率が悪く、出力が多いと速度が遅くなります。バッファリングされていない出力は、各文字に対してシステムコールを実行できます(通常はそうではありません)。

利点は、バッファが満たされてフラッシュされるのではなく、すぐに出力を取得できることです。これは、より遅い出力(たとえば、一度に1行以下)に適しており、対話的に見ることができます。

Unixでは、出力は通常ブロックまたはラインバッファリングされ、バッファリングされないケースはほとんどありません。

stdbufGNU coreutilsの一部であるcommandを使用して、コマンドのデフォルト値を変更できます。

関連情報