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

如何在bash中使用awk提取文件第三列ID值大于1的对应行

解决方案

方法1:数值比较(推荐,兼容性更强)

直接提取ID的数值做大小判断,不管ID是几位数都能正确匹配,逻辑完全贴合「ID值大于1」的需求:

awk '{split($3, arr, /[=;]/)} arr[2] > 1' file.txt > output.txt

逻辑说明:

  • 用split函数把第三列按=和;切割成数组arr,切割后arr[2]就是ID的数值
  • 直接判断arr[2] > 1,符合条件的行就会自动输出

方法2:修改原有正则匹配

如果仅需要临时排除ID=0和ID=1的固定场景,可以直接修改正则的匹配规则,同时匹配0和1:

awk '$3 !~ /^ID=[01];/' file.txt > output.txt

逻辑说明:

  • 正则^ID=[01];可以匹配第三列开头为ID=0;或者ID=1;的内容
  • 用!~排除匹配到的行,剩下的就是符合要求的内容

注意:该方法仅适合ID为个位数的场景,如果存在ID=10、ID=11这类值,正则会误判,优先推荐方法1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:39:04