我需要多次运行一个应用程序并使用一些命令获取一些statistcs。 我正在做的事情的一个简单例子是:
/usr/bin/time --format="%U" date
此行将打印:
Seg Nov 2 22:15:28 BRST 2015
0.00
我需要格式化这个输出,我想用bash这样做:
echo "$usertime & $date"
其中$usertime
是来自/usr/bin/time --format="%U"
和$date
date
的结果
我知道以下内容有效,但我不知道如何将值分成两个变量:
OUTPUT=`/usr/bin/time --format="%U" date`
echo "$OUTPUT"
上面的输出是:
0.00
Seg Nov 2 22:23:50 BRST 2015
(按相反顺序)
答案 0 :(得分:1)
这里,awk用于反转行顺序并格式化输出:
$ /usr/bin/time --format="%U" date 2>&1 | awk 'NR==1{d=$0;next} {print $0 " & " d}'
0.00 & Mon Nov 2 16:58:40 PST 2015
$ /usr/bin/time --format="%U" date 2>&1 | sed -E 'N; s/([^\n]*)\n(.*)/\2 \& \1/'
0.00 & Mon Nov 2 17:01:15 PST 2015
$ /usr/bin/time --format="%U" date 2>&1 | ( read d; read t; echo "$t & $d" )
0.00 & Mon Nov 2 17:04:40 PST 2015
答案 1 :(得分:0)
/ usr / bin / time正在将时间写入标准错误,而date的输出将转到标准输出。如果您希望它们位于单独的变量中,您可以将时间输出写入带有$.when
标志的文件,然后将其读回另一个变量:
-o