grep - Grep输出整个搜索文件

  显示原文与译文双语对照的内容

我目前正在尝试解析以下文件类型(. fasta ):


>SeqID=0001__GroupID=0001
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0002__GroupID=0001
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0003__GroupID=0002
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0004__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0005__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0006__GroupID=0004
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC

按组id提取序列的步骤。 我有一个要按以下格式提取的id文件:


GroupID=0002
GroupID=0003

我一直使用以下命令:


$ grep -A 1 -f groupIDs_to_extract.txt sequences_file.fasta> output.txt

这个想法是在输入文本文件中执行一个 grep,并包含下面的上下文来实际提取序列。 因此,从示例中,输出将是来自 2和 3组的所有序列:


>SeqID=0003__GroupID=0002
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0004__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0005__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC

但是,它只是输出整个 sequences_file.fasta 最后,我不知道为什么。 谁能帮助?

时间: 作者:

结果,我的文件实际上格式化如下:


>SeqID=0001__GroupID=0001 ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0002__GroupID=0001 ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0003__GroupID=0002 ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0004__GroupID=0003 ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC

我没有注意到我的文本编辑器( gedit ) 包装了文本,所以它看起来像一个普通的. fasta 文件。

我使用了 正规表达式 查找+ 替换来将换行符正确地添加到正确的格式中,现在,grep 。

另外,我修改了命令的结尾:


$ grep -A 1 -f groupIDs_to_extract.txt sequences_file.fasta | grep -v"--"> output.txt

这样它就删除了当你使用上下文命令时grep所坚持的-- 。

作者:
...