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

如何修改awk代码删除file_1中首列匹配file_2值的行

解决方案

你可以调整awk的处理逻辑和文件读取顺序,实现删除file_1中首列值在file_2中出现过的行的需求,代码如下:

awk 'NR==FNR {exclude[$0]; next} !($1 in exclude)' file_2 file_1

代码逻辑说明

  • 先读取单列文件file_2,把每一行的内容作为键存入exclude数组,标记所有需要排除的首列值
  • NR==FNR是awk的常用判断规则:仅在处理第一个输入文件(此处为file_2)时触发当前代码块
  • 读取完file_2后开始处理file_1,判断当前行的首列$1不在exclude数组中时,直接输出该行,最终仅保留file_1中首列从未在file_2中出现过的行
  • 注意输入文件的顺序为file_2在前、file_1在后,不要写反

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:02