標準出力ではないファイルからのみすべてのCR行を「ティー」として削除するにはどうすればよいですか?

標準出力ではないファイルからのみすべてのCR行を「ティー」として削除するにはどうすればよいですか?

egを使用するときは、出力で現在の進行状況をリアルタイムで確認し、後で使用できるログを取得したいとrsync思います。teeパイプのみを使用すると、| tee logfileログファイルに多数の行が含まれます。

0 files...<CR>
100 files...<CR>
200 files...<CR>

キャリッジリターン<CR>文字は、現在の行をリアルタイム出力に置き換えるために使用されます。これはまさにこのstdout部分でtee望ましい動作ですが、ログファイルから<CR>aと最後のエントリの間の内容を削除する方法はありますか<LF>? (具体的な答えを求めるものではありませんrsync。これは単なる例です!)sed途中にパイプがあるかもしれませんか?

ベストアンサー1

次のことができます。

... | tee /dev/stderr | grep -v $'\r' > logfile

または:

.... | tee >(grep -v $'\r' > logfile)

これにより効果的に削除されます。進展ラインrsync。 bashとzsh$'...'>(...)ksh構文をサポートしていますが、標準ではありませんsh

おすすめ記事