使用awk cmdline解析时间cmdline输出

时间:2014-11-25 06:02:22

标签: bash parsing time awk output

我有一个计划,我正在计时,让我们说some_bin。我运行time命令,它产生如下输出:

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

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

到目前为止我尝试过的所有东西都无法奏效。关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:1)

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

/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

答案 1 :(得分:0)

在命令完成后输出

time命令,并且写在stderr上。您可以像这样使用它:

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

您也可以使用:

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