cdrecordのgrep出力

cdrecordのgrep出力

cdrecord / wodimの出力を解析するためにgrepを使用したいと思います。cdrecord -v次の出力ライン

Track 01:   49 of   75 MB written (fifo 100%) [buf 100%]  10.2x.

問題は、cdrecordが同じ行に進行状況を示すためにキャリッジリターン(CR、、)を使用することです。\r

私は通常動作するcdrecord呼び出しに追加しようとしましたが、tr '\r' '\n'出力はソートされません。代わりに、大量のテキストが解析され表示されます。

cdrecord -v ... | tr '\r' '\n' | grep -i written

cdrecord、tr、またはgrepのためですか?出力を1行ずつ取得できるように強制的に更新する方法はありますか?

助けてくれてありがとう。

答え1

出力がバッファtrリングされます。以下をstdbuf -o0使用して、trSTDOUTをバッファリングされていない状態にすることができます。

cdrecord -v ... | stdbuf -o0 tr '\r' '\n' | grep -i written

関連情報