【问题标题】:Print pv output (stderr) to file将 pv 输出 (stderr) 打印到文件
【发布时间】:2020-09-03 22:33:55
【问题描述】:

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

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

在我的 5 秒超时期间,速率线输出已“更新”。我试过了,但它不起作用(日志为空):

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

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

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

更新:

要将内容放入如上所述的文件中,我必须使用,尽管我不确定为什么需要它( 单独不起作用,如果没有,文件将是空的):

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

【问题讨论】:

    标签: stderr pv stderr pv stdbuf tr stdbuf pipe stderr pv


    【解决方案1】:

    来自man pv

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

    由于rates.log 不是终端,您需要使用pv -fr 而不是pv -r

    【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2011-12-19
    • 2021-01-20
    • 2021-05-23
    • 2017-11-04
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    相关资源
    最近更新 更多