将 pv 输出 (标准) 打印到文件



如何将 pv 的 stderr 输出打印到文件中?例如:

timeout 5s dd if=/dev/random | pv -r > /dev/null
[ 505kiB/s]

速率线输出在我的五秒超时过程中"更新"。我试过这个,但它不起作用(日志为空(:

timeout 5s dd if=/dev/random | pv -r > /dev/null 2> rates.log

我相信这与 stderr 输出中的回车符有关,但一个小时后我卡住了。理想情况下,每次 pv 打印新值时,我的日志文件都会有多行:

[ 505kiB/s]
[ 498kiB/s]
[ 542kiB/s]
[ 513kiB/s]
[ 509kiB/s]

更新:

为了像上面描述的那样将内容放入文件中,我不得不使用 stdbuf,尽管我不确定为什么需要它(单独的 tr 不起作用,没有 stdbuf 的文件将是空的(:

timeout 5s dd if=/dev/random | pv -fr > /dev/null 2> >(stdbuf -oL tr 'r' 'n' > rates.log)

man pv

-f, --力
输出。 通常,pv不会输出任何视觉显示 如果标准错误不是终端。 此选项强制它 这样做。

由于rates.log不是终端,因此您需要执行pv -fr而不是pv -r

相关内容

  • 没有找到相关文章

最新更新