尝试查找重复数字时,awk正则表达式无法匹配IP地址

时间:2013-12-20 20:32:42

标签: regex awk

我无法获得以下内容以匹配任何IP地址

awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $0}' maillog

或者这个......

awk '/[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/' maillog

但这有效......

awk '/127.0.0.1/{print $0}' maillog

这样做......

awk '/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]/{print $0}' maillog

前两个我做错了什么?

2 个答案:

答案 0 :(得分:4)

要将interval {1,3}gnu awk一起使用,我需要使用--re-interval启用它,如下所示:

awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $0}' maillog

答案 1 :(得分:1)

他们很好。

以下内容对我有用。

$ echo "2.168.1.1" | awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $0}'
2.168.1.1

$ echo "2.1.1.1" | awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $0}'
2.1.1.1

$ echo "22.1.1.1" | awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $0}'
22.1.1.1

我会调查你的maillog,并确保明文中的所有内容。