You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本筛选.com域名行并判断第三列ID奇偶性问题排查

原脚本问题说明

原脚本存在4个核心逻辑错误,导致运行结果不符合预期:

  • 条件连接符使用错误:用||(逻辑或)连接邮箱匹配规则和奇偶判断规则,只要满足「第三列为偶数」就会进入偶数分支,完全不需要邮箱符合.com要求。
  • 校验顺序错误:没有把「邮箱域名包含.com」作为前置准入条件,所有行不管邮箱是否合规都会进入后续判断流程,不符合要求的行没有被跳过。
  • 空值计算异常:第三列ID为空时,$((rec_column3 % 2))会把空值当做0计算,永远返回偶数结果,这也是所有输出都显示为偶数的直接原因。
  • 正则写法不严谨:正则中.是通配符,可匹配任意单个字符,直接写.com会误匹配xcom、1com这类非.com后缀的字符串。
修正后脚本
input="text.txt"
# 转义正则通配符.,严格匹配.com后缀
regex='\.com'
while read -r _ rec_column2 rec_column3
do
  # 前置校验:邮箱不含.com直接跳过当前行
  if [[ ! $rec_column2 =~ $regex ]]; then
    continue
  fi
  # 邮箱合规但ID为空的行直接跳过
  if [[ -z "$rec_column3" ]]; then
    continue
  fi
  # 对合规行判断ID奇偶并输出
  if [[ $((rec_column3 % 2)) -eq 0 ]]; then
    echo "$rec_column3 IS valid and even"
  else
    echo "$rec_column3 IS valid and odd"
  fi
done < "$input"
运行结果

针对提供的text.txt文件,运行脚本后输出如下:

311 IS valid and odd
333 IS valid and odd

结果符合规则要求:

  • neco行无有效.com邮箱、boter行邮箱域名是nginx不含.com,均被直接跳过
  • nicol行邮箱合规但无第三列ID,被跳过
  • 剩余两行ID均为奇数,输出对应判断结果

内容的提问来源于stack exchange,提问作者ask stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:07:04