用 awk 查表连接两个文件
在一次流式处理中用映射表丰富数据文件。
用 NR==FNR 把查找文件读入数组,再打印数据文件中的匹配值。
01命令
命令
$ awk 'NR==FNR{a[$1]=$2;next} {print $1, a[$1]}' map.txt data.txt02作用说明
这一 awk 惯用法把第一个文件装入关联数组,并实时连接第二个文件,即使文件很大也只需一遍、内存适中。它替代临时脚本,是使用 shell 的经典理由。
03风险
!注意: 键的格式必须完全一致;大小写或空白差异会静默产生空白。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- gawk.1.en.html manual page (Debian bookworm)依据: Documents NR, FNR and associative arrays used for two-file joins.
最后验证: 2026-10-13 · 分类: 开发者