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

如何使用awk匹配两文件列,从file2中筛选file1对应匹配记录

awk 双文件匹配提取记录方案

需求

以file1的第一列值为匹配键,提取file2中第三列匹配该键的全部记录。

输入文件内容

file1

1
2
3
4
5

file2

apples  peaches 3
apples  peaches 9
oranges  pears 7
apricots  figs 1

预期输出

apples peaches 3
apricots figs 1

实现代码

awk '
FNR==NR {f1[$1];next}
($3 in f1)
' file1 file2 > output.txt

注:如果你的实际文件使用竖线|作为字段分隔符,可在awk后添加参数-F"|",本示例默认使用空白作为分隔符,无需额外指定

逻辑说明

  • 处理第一个文件file1时,将第一列所有值存入数组f1作为键,完成后直接跳转到下一行,不执行后续匹配逻辑
  • 处理第二个文件file2时,判断当前行第三列的值是否存在于f1的键中,匹配成功则输出整行内容
  • 最终结果直接写入output.txt文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:45:03