Perl RegEx转换为' Basic'

时间:2016-01-21 05:19:44

标签: regex perl

我目前在FreeBSD中使用grep,但似乎FreeBSD不支持Perl RegEx。我想知道下面的版本是什么,它可以在FreeBSD中使用' basic'表达式:

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

2 个答案:

答案 0 :(得分: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+)/)'

答案 1 :(得分: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