# 使用正则表达式
 awk '{
     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])$/) {
         print("yes");
     } else if ($0 ~ /[[:digit:]].[[:digit:]].[[:digit:]].[[:digit:]]/){
         print("no");
     } else {
         print("error")
     }
 }' nowcoder.txt

# 使用 . 作为分隔符
 awk -F '.' '{
     if (NF == 4) {
         for (i = 1; i < 5; i++) {
             if ($i > 255 || $i < 0) {
                 print("no")
                 break
             }
         }
         if (i == 5) {
             print("yes")
         } else {
             print("error")
         }
     }    
 }'

# bash 脚本,使用 . 作为分割符号
IFS='.'
while read line; do
    arr=(${line})
    if [ ${#arr[*]} -ne 4 ]; then
        printf "error\n"
    else
        for ((i = 0; i < ${#arr[*]}; i++)); do
            if [ ${arr[${i}]} -gt 255 ]; then
                printf "no\n"
                break
            fi
            done
        [ $i == 4 ] && printf "yes\n"
    fi
done