【问题标题】:Parse time cmdline output using awk cmdline使用 awk cmdline 解析时间 cmdline 输出
【发布时间】:2015-01-23 01:06:49
【问题描述】:

我有一个正在计时的程序,比如说some_bin。我运行 time 命令,它会产生如下输出:

time -p some_bin --some-args=args
real 1.09
user 1.08
sys 0.00

我只想获得程序正在使用的 1.09 实时版本。在这种情况下,我尝试使用 awk 模式匹配real 上的第一行,然后提取时间。

到目前为止,我尝试过的所有方法都失败了。关于如何实现这一点的任何想法?

【问题讨论】:

标签: bash parsing time awk output


【解决方案1】:

time 命令的输出是在您的命令完成后输出的,它写在标准错误上。你可以这样使用它:

( time -p some_bin --some-args=args ) |& awk '/real/{print $2}'

你也可以使用:

( time -p some_bin --some-args=args ) 2>&1 |  awk '/real/{print $2}'

【讨论】:

    【解决方案2】:

    这两个命令都可以自己提供实时时间

    /usr/bin/time -f "%e" MYCOMMAND
    
    TIMEFORMAT='%2R'; time MYCOMMAND
    

    TIMEFORMAT 还允许您更改时间输出的精度。

    示例输出

    /usr/bin/time -f "%e" sleep 2
    2.00
    

    .

    TIMEFORMAT='%2R'; time sleep 2
    2.00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 2017-01-18
      • 2011-01-11
      • 1970-01-01
      • 2020-03-15
      • 2016-09-26
      相关资源
      最近更新 更多