在运行 CentOS 的命令行中需要一些帮助,但最终将用于 Linux 构建。我在这里查看了论坛并尝试了 RegEx 构建工具,我知道 regex 的语法是正确的,但显然它不起作用。
下面的选项已经尝试过各种组合,并不是全部都放在一起。物联网
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
ping -c 3 192.168.0.113 | grep '(?<=received,)(.*)(?=,)'
我觉得这应该可行,但鉴于我对正则表达式的了解,不确定缺少什么。我做错了什么?
已更新。两个答案都有效:
ping -c 3 192.168.0.113 | grep -Po '(?<=received,)(.*)(?=,)'
ping -c 3 192.168.0.113 | grep -Po 'received,\K[^,]+'
最佳答案
grep -P '(?<=received,)(.*)(?=,)'
您必须启用 -P
模式才能使该正则表达式工作。您的正则表达式是正确的。 See here
关于用于 Linux 的 RegEx 和 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28493349/