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

如何在sed中实现类似grep -v的正则反向匹配功能?

如何在sed中实现类似grep -v的正则反向匹配功能?

嗨,这问题我太熟了!你想要用sed实现和grep -v一样的反向匹配效果——也就是过滤掉匹配指定正则的行,只保留不匹配的行对吧?

其实你自己写的那个sed命令就已经完美实现了grep -v的功能啦!咱们来拆解对比一下:

  • grep -ev '[Ss][0-9]*[Ee][0-9]*' ${Src} 里的 -v 参数,核心作用就是告诉grep:不要输出匹配这个正则的行,把不匹配的行输出出来
  • 而你的sed命令 sed '/[Ss][0-9]*[Ee][0-9]*/d' ${Src},其中 /pattern/d 是sed的经典用法:找到所有匹配pattern的行,然后用d命令删除它们。sed默认会输出所有没被删除的行,这不就正好对应grep -v的反向匹配逻辑嘛!

简单说,这两个命令在功能上完全等价,都能帮你过滤掉那些带SxxExx(比如S01E05、s3e10这类)格式的行,保留其他内容。

之后你要是换别的正则实现反向匹配,只要把sed命令里的正则替换成你需要的,保留/.../d这个结构就可以,上手超简单!

备注:内容来源于stack exchange,提问作者fsgdfgdfgd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:44:28