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

如何在MacOS、Unix系统中用grep提取行内特定ID?

提取目标ID的Grep解决方案

没问题,我来帮你从这段STOCKHOLM格式的文本里提取WP开头的蛋白ID!根据你的需求,我整理了几个实用的grep命令,适配MacOS/Unix环境:

1. 提取完整的带区域的ID(比如WP_002089484.1/1-154)

如果你需要保留ID后面的区域范围信息,用这个命令:

grep -o 'WP_[0-9]*\.[0-9]/[0-9]*-[0-9]*' your_input_file.txt
  • -o 参数让grep只输出匹配到的内容,而不是整行文本
  • 正则表达式WP_[0-9]*\.[0-9]/[0-9]*-[0-9]*精准匹配WP开头,跟着数字、点、数字,再加上斜杠分隔的区域范围

2. 只提取核心ID(比如WP_002089484.1)

如果只需要去掉后面的区域部分,用这个命令:

grep -o 'WP_[0-9]*\.[0-9]' your_input_file.txt | head -n1
  • head -n1 用来避免重复输出(你的文本里同一ID出现了多次)
  • 也可以用更精准的方式,只匹配#=GS标签后的ID,确保拿到的是注释行里的目标ID:
grep -o '#=GS WP_[0-9]*\.[0-9]' your_input_file.txt | sed 's/#=GS //'

这里sed 's/#=GS //'是把匹配结果里的#=GS 前缀去掉,直接得到纯ID。

3. 兼容BSD/GNU Grep的通用写法

MacOS默认是BSD grep,和Linux的GNU grep有些细微差异,用扩展正则的写法更通用:

grep -Eo 'WP_[0-9]+\.[0-9]+' your_input_file.txt | uniq
  • -E 启用扩展正则,+表示匹配至少一个数字,比*更严谨
  • uniq 自动去重,避免重复输出同一ID

内容的提问来源于stack exchange,提问作者D.Parker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:54