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