我有一个包含大量蛋白质序列的文件。每个序列由一个最初的“蛋白质ID号码”(对于那些知道的GI号码)开头。我正在使用awk命令,允许我在两个正则表达式之间打印。使用这个,我可以在一个正则表达式字段中输入一个GI编号列表,其中每个GI编号用“|”分隔。第二个正则表达式是我在每个蛋白质后添加的正则表达式,允许我执行awk函数(ABC123)。 所以我使用的代码如下订购输出文件
awk '/GI1|GI2|GI3|GI4|GIX.../,/ABC123/' database.txt > output.txt
正如你可以从上面的代码中所看到的,我database.txt内搜索并写入新文件。问题是,当我打开output.txt时,GI的列表是错误的顺序。在output.txt的,我需要他们,因为他们出现在第一场正则表达式,即
GI1
GI2
GI3...
相反,它们发生在它们在database.txt出现的顺序,所以在output.txt中出现的相同顺序它们看起来都如混乱
Gi3
GI4
GI1
GI2
GI5
有谁知道我如何能得到地理标志的名单在输出文件相匹配的相同顺序大兵我输入的在第一场正则表达式列表?
我认为它们并不总是和'sort'产生的顺序一样,如果你做了'sort
如在output.txt之前添加'sort'?像'... database.txt> sort output.txt' – user3473083
这将是'awk'....'database.txt | sort> output.txt' –