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

如何用grep结合管道从gff文件中提取去重的miRNA基因名称?

问题原因排查

你写的命令失效主要有3个问题:

  • 语法逻辑错误:grep 命令 > file2 | sort 这一步将grep的输出全部重定向写入了file2,管道左侧没有任何标准输出流传递给sort命令,后续流程自然无法执行
  • 冗余操作:不需要额外创建临时文件存储中间结果,Linux管道可以直接在多个命令间传递输出流,完全可以实现无临时文件的单行命令
  • 正则冗余:你写的(\gene-MIR)里的反斜杠是多余转义,不需要给字母g加转义符

正确单行命令实现

根据你的需求提供两种常用场景的命令:

场景1:仅输出去重后的miRNA名称列表

grep -Eo "gene-MIR[0-9a-zA-Z]*" file.gff | sort | uniq > unique_mirna_list.txt

场景2:输出去重后的miRNA名称+对应在gff中出现的次数

grep -Eo "gene-MIR[0-9a-zA-Z]*" file.gff | sort | uniq -c > mirna_count_list.txt

小提示:如果你的gff文件中miRNA名称包含横杠后缀(如gene-MIR124-3p),可以将正则修改为"gene-MIR[0-9a-zA-Z-]*" 即可完整匹配整个名称。

命令逻辑说明

  • grep -Eo "gene-MIR[0-9a-zA-Z]*" file.gff:使用扩展正则匹配所有gene-MIR开头的miRNA名称,仅输出匹配到的名称部分
  • sort:将匹配到的所有名称按字典序排序,uniq命令仅能识别相邻的重复行,因此排序是去重的前置必要步骤
  • uniq:去除重复行,加-c参数会在每行开头统计该条目出现的次数
  • 最后重定向到输出文件保存最终结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:09:03