我必须在名为(genelist.txt
,多列的数据库文件中查找数千个基因名称(database.txt
,一列)的列表。包含至少一个与genelist.txt
匹配的基因名称的任何行都将被提取到output.txt
。
我曾经这样做过:
findstr /G:genelist.txt database.txt >output.txt
效果很好,速度很快。但是,我今天才发现最终输出受原始genelist.txt
中基因顺序的影响。如果使用未排序的基因列表,则有一个结果,如果对基因列表进行排序并再次搜索,则会产生更多行的结果。但即使使用已排序的基因列表,文件output.txt
仍然不包含所有行,因为我错过了一些记录。在与
grep -f "genelist.txt" database.txt > output.txt
grep 的结果无论基因列表是否排序都没有区别,但它比 findstr 慢一点。
我想知道这是怎么来的。我可以向 findstr 添加任何参数,以使其返回完整的结果列表吗?