Linux 如何通过bash脚本中的管道从命令输出中提取2条信息?
我有一个生成以下输出的命令: 我希望通过管道将此输出转换为将在第2行和第4行提取项目的内容,并在一行中输出它们,如下所示:Linux 如何通过bash脚本中的管道从命令输出中提取2条信息?,linux,bash,awk,sed,Linux,Bash,Awk,Sed,我有一个生成以下输出的命令: 我希望通过管道将此输出转换为将在第2行和第4行提取项目的内容,并在一行中输出它们,如下所示: 167 0m1.370s 我经常使用sed和awk来获取单个值,但我是否可以使用gerrymander这些流工具来处理多行输出?您可以使用管道将输出传输到此awk: awk '/\{0\}/{p=$2} /real/{print p, $2; exit}' 您可以使用管道将输出传输到此awk: awk '/\{0\}/{p=$2} /real/{print p, $2;
167 0m1.370s
我经常使用sed和awk来获取单个值,但我是否可以使用gerrymander这些流工具来处理多行输出?您可以使用管道将输出传输到此awk:
awk '/\{0\}/{p=$2} /real/{print p, $2; exit}'
您可以使用管道将输出传输到此awk:
awk '/\{0\}/{p=$2} /real/{print p, $2; exit}'
如果它始终是第二行和第四行的第二个元素,则可以通过管道连接到以下位置:
awk 'NR==2 {p=$2} NR==4 {print p, $2; exit}'
如果它始终是第二行和第四行的第二个元素,则可以通过管道连接到以下位置:
awk 'NR==2 {p=$2} NR==4 {print p, $2; exit}'
使用GNU awk进行多字符RS:
$ awk -vRS='^$' '{print $4, $6}' file
167 0m1.370s
使用GNU awk进行多字符RS:
$ awk -vRS='^$' '{print $4, $6}' file
167 0m1.370s
对于这个小数据,您真的需要
next
和exit
。这应该可以很好地工作:awk'/\{0\}/{p=$2}/real/{print p,$2}'
是的,它可以工作,但出于效率原因,使用了next
和exit
。如果在/real/
模式之后有数千行呢<代码>退出将在打印后立即终止awknext
肯定可以取出。对于这个小数据,您真的需要next
和exit
。这应该可以很好地工作:awk'/\{0\}/{p=$2}/real/{print p,$2}'
是的,它可以工作,但出于效率原因,使用了next
和exit
。如果在/real/
模式之后有数千行呢<代码>退出将在打印后立即终止awk<代码>下一步肯定可以取出。