大家好!
这个问题源自这里的前一个问题,但代表它本身。
我正在使用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
一个可能的答案来自man agrep
:
以下可能导致无限循环:agrep 模式 * > output_file。如果匹配的数量很高,它们可能会在 output_file 被完全读取之前存放在 output_file 中,从而导致 output_file 中的模式匹配更多(匹配针对整个目录)。目前尚不清楚这是否是一个“错误”(grep 也会这样做),但请注意。
我用不同的文件对此进行了测试。有时它确实有效,但在大多数情况下,我无法理解这是如何发生的。这-d '$'
是非常恼人的。
最后,我将使用不同的方法进行模糊搜索,但这并不能让我入睡。到底是怎么回事?我可以完全信任agrep
吗?