0
我目前在FreeBSD上使用grep,但似乎FreeBSD不支持Perl RegEx。我不知道是什麼版本以下將是有它在FreeBSD下工作,使用「基本」的表達:Perl RegEx轉換爲'Basic'
grep -Po "(?<=addr.)[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
我目前在FreeBSD上使用grep,但似乎FreeBSD不支持Perl RegEx。我不知道是什麼版本以下將是有它在FreeBSD下工作,使用「基本」的表達:Perl RegEx轉換爲'Basic'
grep -Po "(?<=addr.)[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
,我會用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
爲什麼不只是使用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+)/)'
您的FreeBSD是否安裝了perl?因爲這將支持perl正則表達式... – Sobrique