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

如何使用AWK精准筛选联系电话93开头且2021年注册的人员记录

分号分隔人员信息文件精准筛选AWK方案

场景与现存问题

待处理文件drivers.txt为分号分隔的结构化人员信息,字段按固定顺序排列:

  • 1: ID
  • 2: Name(姓名)
  • 3: Driving License ID(驾照编号)
  • 4: Contact(联系电话)
  • 5: Bank ID(银行卡号)
  • 6: Balanca(账户余额)
  • 7: Registration Date(注册日期)

筛选目标为:提取联系电话以93开头、且注册日期为2021年的人员记录。

最初编写的全局正则匹配命令存在跨字段误判缺陷:

awk '/;93/ && /2021-/' drivers.txt

该命令未限定匹配的字段范围,只要整行任意位置出现;93和2021-就会判定为命中。例如测试样例中Mary的记录:银行卡号为935645332(字段前自带分号,刚好匹配;93规则)、注册日期为2021年,但联系电话以96开头,完全不符合筛选要求,却会被原命令错误输出。

正确实现命令

通过指定分隔符精准定位目标字段做规则匹配,可彻底避免跨字段误判:

awk -F';' '$4 ~ /^93/ && $7 ~ /^2021-/' drivers.txt

命令逻辑说明

  • -F';':明确设置AWK的字段分隔符为分号,和文件格式规则对齐,拆分后的每个字段可通过$+下标的形式直接访问
  • $4 ~ /^93/:仅对第4个字段(联系电话)做匹配校验,正则中的^锚定字段内容开头,判断号码是否以93起始
  • $7 ~ /^2021-/:仅对第7个字段(注册日期)做匹配校验,判断日期是否以2021-开头,即注册时间为2021年
  • 两个判断条件为逻辑与关系,仅同时满足两个规则的记录会被AWK默认打印输出,无需额外编写输出语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:00:49