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
。