我想在带有-f的文本文件上使用grep来匹配长列表(10,000)的模式.事实证明,grep不喜欢这个(谁知道?).一天后,它没有产生任何东西.较小的列表几乎可以瞬间完成.
我以为我可能会把我的长列表分开并做几次.知道模式列表的最大长度是多少?
另外,我对unix很新.欢迎采用其他方法.模式列表或搜索术语位于纯文本文件中,每行一个.
谢谢大家的指导.
从注释中可以看出,您匹配的模式是固定字符串.如果是这样的话,你一定要使用-F
.这将大大提高匹配的速度.(使用479,000个字符串匹配输入文件与3行-F
,在中等功率的机器上使用不到1.5秒.不使用-F
,几分钟后相同的机器尚未完成.)
我和约有同样的问题.在900万行的文件中搜索400万个模式.好像这是RAM的问题.所以我得到了这个整齐的小工作,可能比分裂和加入慢,但它只需要这一行.
while read line; do grep $line fileToSearchIn;done < patternFile
Run Code Online (Sandbox Code Playgroud)
我需要使用这个工作,因为-F
标志不是那些大文件的解决方案......
编辑:对于大文件来说这似乎很慢.经过一些研究后,我发现了'faSomeRecords'以及来自Kent NGS-editing-Tools的其他很棒的工具
我通过从550万条记录文件中提取200万个fasta-rec来自己尝试.约.30秒..
干杯
编辑:直接下载链接