SHELL16 判断输入的是否为IP地址

写一个脚本统计文件nowcoder.txt中的每一行是否是正确的IP地址。
如果是正确的IP地址输出:yes
如果是错误的IP地址,且是四段号码的话输出:no,否则的话输出:error
假设nowcoder.txt内容如下:
192.168.1.1
192.168.1.0
300.0.0.0
123
你的脚本应该输出:
yes
yes
no
error

正则表达式写法:
#!/bin/bash
awk -F “.” ‘{
if (NF == 4) {
if ( 0   / ( ( 25 [ 0 − 5 ] ∣ 2 [ 0 − 4 ] [ 0 − 9 ] ∣ 1 [ 0 − 9 ] [ 0 − 9 ] ∣ [ 1 − 9 ] [ 0 − 9 ] ∣ [ 0 − 9 ] ) ) ˙ 3 ( 25 [ 0 − 5 ] ∣ 2 [ 0 − 4 ] [ 0 − 9 ] ∣ 1 [ 09 ] [ 0 − 9 ] ∣ [ 1 − 9 ] [ 0 − 9 ] ∣ [ 0 − 9 ] ) 0 ~ /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[09][0-9]|[1-9][0-9]|[0-9]) 0 /((25[05]∣2[04][09]∣1[09][09][19][09][09]))˙3(25[05]∣2[04][09]∣1[09][09][19][09][09])/) {
print(“yes”)
} else {
print(“no”)
}
} else {
print(“error”)
}
}’

非正则表达式写法
awk -F ‘.’ ‘NF==4{flag=true;for(i=0;i<NF;i++){if(( i < 0 ) ∣ ∣ ( i<0)||( i<0)∣∣(i > 255)){flag=false;print “no”;break;} if((flag == true)&&(i == NF-1)) {print “yes”};}} NF<4{print “error”}’ nowcoder.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值