如何验证使用shell脚本写入文本文件行中的多个IP是否有效?

时间:2017-10-10 16:09:01

标签: bash shell ip sh ip-address

我有一个包含以下内容的文本文件:

一些随机文字

一些随机文字

一些随机文字

1000 = 169.254.1.1 169.254.1.2 169.254.1.3

1001 = 169.254.2.1 169.254.2.2

使用shell脚本,想要验证针对数字1000,1001提到的所有IP是否都是有效的IP。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可能会起到作用。这将检查IP是否具有相同的格式但不是范围,例如IP 999.9.9.9也将被视为有效,我试图找出更精确的正则表达式,但同时,这可能对您有所帮助。

count_of_potential_IPs=$( grep -E '100(0|1)=' text.txt | awk -F'=' '{ print $2 }' | tr ' ' '\n' | wc -l)
count_of_valid_IPs=$( grep -E '100(0|1)=' text.txt | awk -F'=' '{ print $2 }' | tr ' ' '\n' | grep -E '[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}' | wc -l )

if [ $count_of_potential_IPs -eq $count_of_valid_IPs ]
then
    echo "Awesome!, all Ips seem to be valid. The world is regaining its balance! :)"
fi

问候!