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

如何用单条egrep命令匹配含指定NBA前缀且不以}结尾的行

解决单条egrep命令匹配指定前缀且不以}结尾的行

首先,你之前尝试的egrep 'NBA:(red|green|blue)*[^}]$' myfile.txt之所以无效,是因为*被错误地应用在了(red|green|blue)这个分组上——它表示这个分组可以重复0次或多次,完全偏离了你的需求:你需要的是前缀必须是NBA:red/NBA:green/NBA:blue,且整行不以}结尾。

正确的单条egrep命令

egrep 'NBA:(red|green|blue).*[^}]$' myfile.txt

正则表达式拆解

  • NBA:(red|green|blue):精准匹配行开头的指定前缀,确保只筛选包含目标前缀的行
  • .*:匹配前缀之后的任意长度字符(除换行符外),覆盖中间所有内容
  • [^}]$:锚定行尾,限制最后一个字符不能是},[^}]表示匹配除}外的任意字符

针对行尾含空白字符的优化(可选)

如果你的文件中存在行尾带空格但仍需保留的情况(比如NBA:green this line must match ),可以调整正则,确保最后一个非空白字符不是}:

egrep 'NBA:(red|green|blue).*[^}[:space:]] *$' myfile.txt

执行这条命令后,就能直接得到你想要的输出:

NBA:green this line must match
NBA:red this line has a tab and must match

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:22:37