题解 | #判断输入的是否为IP地址#
判断输入的是否为IP地址
https://www.nowcoder.com/practice/ad7b6dbfab2a4267a9991110c57aa64f
#!/bin/bash #!/bin/bash # 定义正则表达式以匹配正确的IPv4地址 ipv4_regex='^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$' # 逐行读取文件nowcoder.txt,并去除行首和行尾的空白字符 while IFS= read -r line; do # 去除行首和行尾的空白字符 trimmed_line="${line##*( )}" trimmed_line="${trimmed_line%%*( )}" # 检查行是否为空(处理空行的情况) if [ -z "$trimmed_line" ]; then echo "error" # 空行应输出error continue fi # 检查行是否由四段号码组成(通过点分隔) if [[ "$trimmed_line" =~ ^([^.]+\.){3}[^.]+$ ]]; then # 如果是四段号码,再检查是否是正确的IPv4地址 if [[ "$trimmed_line" =~ $ipv4_regex ]]; then echo "yes" else echo "no" fi else echo "error" fi done <nowcoder.txt