2016-01-21 69 views
0

我目前在FreeBSD上使用grep,但似乎FreeBSD不支持Perl RegEx。我不知道是什么版本以下将是有它在FreeBSD下工作,使用“基本”的表达:Perl RegEx转换为'Basic'

grep -Po "(?<=addr.)[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" 
+0

您的FreeBSD是否安装了perl?因为这将支持perl正则表达式... – Sobrique

回答

0

,我会用sed但如果超过一个IP地址存在以下命令将不起作用。

$ echo '65 addr.567.67.879.89 foo bar' | sed -n "s/.*addr\.\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p" 
567.67.879.89 
2

为什么不只是使用perl - 它可能是默认安装的。

perl -ne 'print $1 if m/(?<=addr.)([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/' 

当然,在这一点上,你可能不需要更多的背后。

perl -ne 'print join ("\n", m/addr.(\d+\.\d+\.\d+\.\d+)/)'