【问题标题】: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