2016-01-21 41 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+)/)'