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

如何使用awk依据另一文件的映射关系替换指定文件的IID字段值

awk实现IID字段替换方案

可直接运行的命令

如果你的文件是普通空格分隔,使用以下命令即可:

awk 'NR==FNR{map[$2]=$1;next} FNR==1{print;next} {$2=map[$2];print}' 文件2.txt 文件1.txt > 替换后结果.txt

如果你的文件是制表符(Tab)分隔,想要保留原文件的分隔格式,使用以下版本:

awk 'BEGIN{FS=OFS="\t"} NR==FNR{map[$2]=$1;next} FNR==1{print;next} {$2=map[$2];print}' 文件2.txt 文件1.txt > 替换后结果.txt

逻辑说明

  • 先读取映射文件(文件2):NR==FNR 判断当前处理的是第一个输入文件即文件2,将每行第二个字段(旧IID)作为键、第一个字段(新id)作为值存入map数组,读完当前行直接跳过后续逻辑处理下一行
  • 再处理待替换文件(文件1):
    • 第一行是表头,直接打印不做修改
    • 其余行将第二列(IID字段)替换为map数组中对应的新id值,再打印整行
  • 最终结果输出到替换后结果.txt中,不会修改原文件,可放心测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:27:03