我有如下几行:
PING planetlab2.tau.ac.il (192.114.4.3) 56(84) bytes of data.
我想从这些行获取IP地址,这些地址位于第一个(
和)
对之间
如何使用linux正则表达式获取它?像sed,grep,blabla 谢谢!
答案 0 :(得分:0)
如果您不需要不匹配的行,并且您只需要匹配行中的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
答案 1 :(得分:0)
echo "PING planetlab2.tau.ac.il (192.114.4.3) 56(84) bytes of data." | sed -r 's/^[^(]+\(([^)]+)\).*/\1/'
192.114.4.3