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
使用して、tr
STDOUTをバッファリングされていない状態にすることができます。
cdrecord -v ... | stdbuf -o0 tr '\r' '\n' | grep -i written