#!/bin/bash awk '{ if ($0 ~ /^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/) { print "yes" } else if ($0 ~ /^(0|[1-9][0-9]{0,2})\.(0|[1-9][0-9]{0,2})\.(0|[1-9][0-9]{0,2})\.(0|[1-9][0-9]{0,2})$/) { print "no" } else { print "error" } }' nowcoder.txt
另一位同学题解中no的情况判断有误,这里改成0.0.0.0-999.999.999.999