我试图以这种格式在Linux(所有文件)中查找所有IP地址:
192.168.X.X
X从0到255。
我试过了:
grep -E –r -n '(192)\.(168)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' .
它正常工作......但是,它也通过忽略最后的0来给出这个IP地址:192.168.X.260为192.168.X.26。
我该怎么做才能解决这个问题?
感谢。
答案 0 :(得分:4)
我该怎么做才能解决这个问题?
您应该使用可以执行比较的工具:
awk -F. '$1==192 && $2==168 && $3>=1 && $3<=255 && $4>=1 && $4<=255' inputfile
编辑:正如评论中所述,为了对所有文件执行此操作,您可以使用find
:
find /path -type f -exec awk -F. '$1==192 && $2==168 && $3>=1 && $3<=255 && $4>=1 && $4<=255' {} \;
答案 1 :(得分:0)
试试这个:
(192)\.(168)\.(25[0-5]|2[0-4][0-9]|[1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[1]?[0-9]?[0-9])
无论如何,您可以使用http://www.regexper.com来帮助您使用正则表达式:)