0

大家好!

这个问题源自这里的前一个问题,但代表它本身。

我正在使用agrep在大型 DNA 文本文件中搜索具有 2 个允许不匹配的字符串,该文件仅具有来自先前 agrep 搜索的具有相同设置的行。所以每一行都应该包含一个匹配项!我假设agrep每行搜索一次......


问题:_

wc -l temp_R1_GCTCTTCCGATCT_M2.txt-> 9583

agrep -2 -c 'GCTCTTCCGATCT' temp_R1_GCTCTTCCGATCT_M2.txt-> 9570

agrep -2 'GCTCTTCCGATCT' temp_R1_GCTCTTCCGATCT_M2.txt | wc -l-> 9566

-d '$'应该是标准 -.-
agrep -2 -c -d '$' 'GCTCTTCCGATCT' temp_R1_GCTCTTCCGATCT_M2.txt-> 9580

更奇怪的是:
agrep -2 -c 'GCTC' temp_R1_GCTCTTCCGATCT_M2.txt-> 9662(比所有行都多?)
agrep -2 -d '$' -c 'GCTC' temp_R1_GCTCTTCCGATCT_M2.txt-> 9609


数据Googledrive:.txt 文件 ZIP 文件


一个可能的答案来自man agrep

以下可能导致无限循环:agrep 模式 * > output_file。如果匹配的数量很高,它们可能会在 output_file 被完全读取之前存放在 output_file 中,从而导致 output_file 中的模式匹配更多(匹配针对整个目录)。目前尚不清楚这是否是一个“错误”(grep 也会这样做),但请注意。


我用不同的文件对此进行了测试。有时它确实有效,但在大多数情况下,我无法理解这是如何发生的。这-d '$'是非常恼人的。

最后,我将使用不同的方法进行模糊搜索,但这并不能让我入睡。到底是怎么回事?我可以完全信任agrep吗?

4

0 回答 0