1、校验的数据
[root@mq1 sh]# vi ip_data.txt 192.168.1.200 202.106.0.20 300.36.190.5 222222222222 192.168.1.300 200.2.2 192.168.100.100 asdfladjfladsf 132123123.123.123.123..123 8.8.8.8
2、编写awk代码
# 具体语法参考,man awk,感觉语法跟java或js差不多
[root@mq1 sh]# vi pattern.awk { len=split($1,a,"."); if(len==4) { flag=0; for (i=1; i<=len; i++){ if(!(a[i]>=0&&a[i]<=255)){ flag=1; break; } } if(flag==0){ print $1; } flag=0; } }
3、测试运行效果
[root@mq1 sh]# cat ip_data.txt | awk -f /root/sh/pattern.awk 192.168.1.200 202.106.0.20 192.168.100.100 8.8.8.8
4、总结
awk主要对某一列的处理过滤处理,而且awk里面有内置的处理函数,处理起来比写正则轻松多了