使用sed编辑大文本文件中的复杂ID
用sed修改大文本文件中的ID行,仅保留分号分隔的第二个字段
针对你需要修改ID行、保留分号分隔第二个字段的需求,直接用sed的正则替换就能完成,具体命令如下:
sed -E 's/^> [^;]+;([^;]+);.*$/> \1/' 你的输入文件名 > 输出文件名
命令解释
^>:精准匹配以>开头的行(也就是ID行),避免误改其他序列内容[^;]+:匹配第一个分号前的所有非分号字符(即第一个字段);([^;]+);:匹配第一个分号后、第二个分号前的内容,并用括号()捕获这部分(也就是你要保留的第二个字段).*$:匹配第二个分号到行尾的所有无关内容> \1:把整行替换成>加上之前捕获的第二个字段(\1代表第一个捕获组的内容)
示例验证
原ID行:
> AT1G01030;AT1G01030.2;atRTD2::1:11648-13714
执行命令后,该行会被修改为:
> AT1G01030.2
这个命令处理大文件效率很高,sed是流式处理工具,不会把整个文件加载到内存,适合处理大型文本。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

