我有一堆线如下:
PING planetlab2.tau.ac.il (192.114.4.3) 56(84) bytes of data.
我想从这些行中获取 ip 地址,它们位于第一行(
和)
对之间
如何使用 linux 正则表达式获取它?像 sed, grep, blabla 谢谢!
如果您不需要不匹配的行并且您只需要匹配行中的 IP 地址,请尝试以下操作:
perl -ne 'print $1 if /\(((?:\d{1,3}\.){3}\d{1,3})\)/'<<EOT
PING planetlab2.tau.ac.il (192.114.4.3) 56(84) bytes of data.
EOT
输出:
192.114.4.3
echo "PING planetlab2.tau.ac.il (192.114.4.3) 56(84) bytes of data." | sed -r 's/^[^(]+\(([^)]+)\).*/\1/'
192.114.4.3