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

如何使用grep输出字符串并排除匹配到的内容?

解决方法

grep本身没有直接实现“仅输出非匹配内容”的反向-o功能,但用sed或者awk能更直接地完成你的需求:

方法一:使用sed替换

sed适合做文本替换操作,直接把你要去掉的前缀部分替换为空即可:

sed 's/^>[A-Z0-9\.]* //' File.txt > output.txt
  • ^>:匹配行首的>符号
  • [A-Z0-9\.]*:匹配后续的大写字母、数字、点号组合(\.是转义后的点号,确保匹配字面的.)
  • 最后的空格:匹配前缀和目标文本之间的空格
  • 整个命令会把每行开头的前缀部分替换为空,结果写入output.txt

方法二:使用awk处理

awk也能通过正则替换实现同样效果:

awk '{sub(/^>[A-Z0-9\.]* /, ""); print}' File.txt > output.txt
  • sub()函数会在当前行中替换第一个匹配到的正则内容为空
  • 最后print输出处理后的整行

如果你的grep支持PCRE(就是你用的-P参数),也可以结合perl来实现,但sed和awk是更通用的选择,不需要额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:43:10