如何通过bash脚本中的管道从命令中提取2条信息输出?

时间:2014-11-11 21:43:09

标签: linux bash awk sed

我有一个产生以下输出的命令:

{i} count
{0} 167

real    0m1.370s
user    0m0.008s
sys     0m0.000s

我想将这个输出管道输出到将在第2行和第4行提取项目的内容,并将它们输出为一行,如下所示:

167 0m1.370s

我经常使用sed和awk来获取单个值,但是我可以使用这些流工具来处理多行输出吗?

3 个答案:

答案 0 :(得分:4)

您可以使用输出管道输入此awk:

awk '/\{0\}/{p=$2} /real/{print p, $2; exit}'

答案 1 :(得分:1)

如果它始终是第二行和第四行的第二个元素,则可以输入以下内容:

awk 'NR==2 {p=$2} NR==4 {print p, $2; exit}'

答案 2 :(得分:1)

使用GNU awk进行多字符RS:

$ awk -vRS='^$' '{print $4, $6}' file
167 0m1.370s