cdrecord 的 grep 输出

cdrecord 的 grep 输出

我想使用 grep 解析 cdrecord/wodim 的输出。cdrecord -v输出像这样的行

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

问题是 cdrecord 使用回车符 ( CR, \r) 以便在同一行中显示进度。

我尝试附加tr '\r' '\n'到 cdrecord 调用,该调用通常有效,但输出不会逐行显示。相反,会解析并显示大块文本:

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

这是由于 cdrecord、tr 或 grep 造成的吗?有没有办法强制刷新以便逐行获取输出?

任何帮助表示赞赏。

答案1

的输出tr被缓冲。您可以使用stdbuf -o0withtr使其 STDOUT 无缓冲:

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

相关内容