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

UNIX环境下合并两文件且优先取file1值的实现方案咨询

UNIX环境下双文件按优先级合并实现方案

直接用awk即可完成需求,无需额外安装工具,适配所有标准UNIX/Linux环境:

实现命令

awk '
NR==FNR {
    # 先加载file2的id与tmpValue映射关系
    if($1 ~ /^[0-9]/) tmp[$1]=$2
    next
}
{
    # 处理file1数据
    if($1 == "id") {
        # 输出自定义表头
        print "ID\tName\tFinalValue"
        next
    }
    # 按优先级取值:srcValue非空优先用,否则取file2的对应tmpValue
    final = $3 != "" ? $3 : tmp[$1]
    print $1"\t"$2"\t"final
}
' file2 file1

注意事项

  • 命令中文件顺序必须是file2在前file1在后,保证先加载映射关系再做匹配
  • 逻辑完全匹配需求规则,最终仅保留file1中存在的id条目,和样例输出范围一致
  • 默认输出用制表符分隔,可根据需求自行修改分隔符配置

样例运行结果

用你提供的测试数据执行命令后,输出和预期完全一致:

ID	Name	FinalValue
1	a	s123
2	b	s456
3	c	TVb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:15:03