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

使用Awk比对两个大型CSV文件并关联提取字段问题求助

Awk 匹配实现方案

核心逻辑是先加载File1的姓名与城市的映射关系到内存,再遍历File2逐行匹配输出,针对5000行级别的文件没有性能压力。

可用命令

awk -F ';' 'BEGIN{OFS=FS} NR==FNR {city[$1]=$2; next} $3 in city {print $0, city[$3]}' File1 File2

命令参数说明

  • -F ';':指定输入文件的字段分隔符为分号,适配两个CSV的格式
  • BEGIN{OFS=FS}:设置输出字段分隔符和输入保持一致,均为分号,保证输出格式统一
  • NR==FNR {city[$1]=$2; next}:处理第一个输入文件(File1)时,将第一列姓名作为键、第二列城市作为值存入city数组,执行next跳过后续逻辑,避免第一个文件进入匹配输出环节
  • $3 in city {print $0, city[$3]}:处理第二个输入文件(File2)时,判断第三列的姓名是否存在于city数组中,存在则打印当前行完整内容,末尾追加对应城市信息

执行上述命令即可直接得到你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:06:05