如何将 grep 与管道一起使用以对 gff 文件中的 uniq 行进行排序

How can I use grep with pipe to sort uniq lines from a gff file

我正在上四年级的生物信息学课程。在当前的作业中,教授给了我们一个 gff 文件,其中人类基因组中的所有 miRNA 基因都注释为 gene-MIR。我们应该使用 grep 以及正则表达式和其他命令行工具来生成人类基因组中唯一 miRNA 名称的列表。这看起来相当简单,我知道如何做大部分。但是我无法对文件进行排序并删除重复的行。我们应该在一个命令行中执行此操作,但我这样做时遇到了麻烦。

这是我用来生成基因-MIR 名称列表的 grep 命令:

grep -Eo "(\gene-MIR)\d*\w*" file.gff

但这只会生成一个包含多次重复的巨大列表。所以我尝试了:

grep -Eo "(\gene-MIR)\d*\w*" file.gff > file2 | sort < file2 | uniq -c > file3

但这也没有用。我已经尝试了上述的许多变体,但我不确定下一步该怎么做。

任何人都可以提供任何 help/advice 吗?

您可以使用

grep -o 'gene-MIR[[:alnum:]_]*' file.gff | sort -u > file3

详情:

  • -o - 仅输出匹配的文本
  • gene-MIR[[:alnum:]_]* - 正则表达式匹配 gene-MIR 然后是任何零个或多个“单词”字符、字母、数字或下划线(因为 \w 不受普遍支持)
  • sort -u 排序并仅保留唯一条目。