awk 高效校验ip地址格式

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里面有内置的处理函数,处理起来比写正则轻松多了

 

posted @ 2021-03-12 17:43  小粉优化大师  阅读(299)  评论(0编辑  收藏  举报