我需要多次运行应用程序并使用一些命令获取一些统计信息。 我打算做的一个简单例子是:
/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
是结果日期
我知道下面的方法可行,但我不知道如何将值分成两个变量:
OUTPUT=`/usr/bin/time --format="%U" date`
echo "$OUTPUT"
上面的输出是:
0.00
Seg Nov 2 22:23:50 BRST 2015
(倒序)
最佳答案
使用 awk
这里,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
使用 sed
$ /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
使用 shell
$ /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
关于linux - 从两个嵌套程序设置 bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489472/