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

如何用Unix单行命令排除NH:i:后数字不等于1的指定行

解决方案

你可以使用awk或者grep实现需求,两种方案如下:

方案1:使用awk(兼容性更好,逻辑更易读)

命令:

awk '!/^NH:i:[0-9]+$/ || /^NH:i:.*1$/' your_file.txt

逻辑说明:

  • 匹配规则为:只要满足两个条件之一就保留行
    1. 行不匹配NH:i:加纯数字的格式
    2. 行匹配NH:i:加纯数字的格式,且末尾字符为1
  • 自动排除所有符合NH:i:[数字]格式且末尾数字不为1的行,其他所有行都会保留

方案2:使用grep(更简洁)

命令:

grep -v '^NH:i:[0-9]*[^1]$' your_file.txt

逻辑说明:

  • -v参数表示排除匹配正则的行
  • 正则^NH:i:[0-9]*[^1]$匹配所有符合NH:i:加纯数字格式且末尾数字不是1的行
  • 不符合该正则的所有行(包括非NH:i:格式的行、NH:i:加数字且末尾为1的行)都会被保留

效果验证

针对你给出的示例文件,执行上述命令后输出结果为:

NH:i:1
NH:i:11

其他不符合保留规则的NH:i:行都会被过滤,如果你文件中有其他不匹配NH:i:[数字]格式的行,也会全部保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:36:03