删除bash中某个单词前后的所有字符串

删除bash中某个单词前后的所有字符串

我用来ping检查网络的连接性。

我想要的只是收到的数据包数量。

例如,如果ping -c10 -q 8.8.8.8 | grep received输出是:

10 packets transmitted, 5 received, 50% packet loss, time 9016ms

我只想在输出中看到数字 5,而不是在它之前或之后看到任何内容。

所以预期的输出是:5

答案1

您可以使用grepwith-P选项来执行此操作:

grep -Po '\d+(?= received)'

您还可以使用awk

awk '$5 == "received,"{print $4}'

相关内容