相关疑难解决方法(0)

grep -f巨大文件的替代品

grep -F -f file1  file2
Run Code Online (Sandbox Code Playgroud)

file1是90 Mb(250万行,每行一个字)

file2是45 Gb

无论我让它运行多久,该命令实际上都不会产生任何结果.显然,这超出了grep的范围.

似乎grep无法处理来自该-f选项的那么多查询.但是,以下命令确实产生了所需的结果:

head file1  >  file3
grep -F -f file3   file2
Run Code Online (Sandbox Code Playgroud)

考虑到文件大小,我怀疑sed或awk是否也是合适的替代方案.

我不知道其他选择......请帮忙.学习一些sql命令是否值得?这简单吗?谁能指出我正确的方向?

unix scripting grep large-files

9
推荐指数
2
解决办法
1万
查看次数

Perl脚本比grep -f更快

我正在调整这里提出的现有perl脚本: grep -f的快速替代

我需要过滤许多非常大的文件(Map文件),每个文件大约1000万行x 5个字段宽,使用一个长列表(过滤文件)和匹配的地图文件中的打印行.我尝试使用grep -f,但它只是花了太长时间.我读到这种方法会更快.

这就是我的文件的样子:

过滤文件:

DB775P1:276:C2R0WACXX:2:1101:10000:77052
DB775P1:276:C2R0WACXX:2:1101:10003:51920
DB775P1:276:C2R0WACXX:2:1101:10004:36433
DB775P1:276:C2R0WACXX:2:1101:10004:57256
Run Code Online (Sandbox Code Playgroud)

地图文件:

DB775P1:276:C2R0WACXX:2:1101:10000:70401     chr5    21985760    21985780    - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr18   14723904    14723924    - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr18   14745586    14745606    - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr4    7944241     7944261     - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr4    8402856     8402876     + 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr8    10864708    10864728    + 
DB775P1:276:C2R0WACXX:2:1101:10002:88487     chr17   5681227     5681249     - 
DB775P1:276:C2R0WACXX:2:1101:10004:74842     chr13   2569168     2569185     + 
DB775P1:276:C2R0WACXX:2:1101:10004:74842     chr14   13253418    13253435    - 
DB775P1:276:C2R0WACXX:2:1101:10004:74842     chr14   13266344    13266361    -
Run Code Online (Sandbox Code Playgroud)

我希望输出行看起来像这样,因为它们包含map和filter文件中的字符串.

DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr18   14723904    14723924    - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr18   14745586    14745606    - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052     chr4    7944241     7944261     - 
DB775P1:276:C2R0WACXX:2:1101:10000:77052 …
Run Code Online (Sandbox Code Playgroud)

perl grep

1
推荐指数
1
解决办法
403
查看次数

标签 统计

grep ×2

large-files ×1

perl ×1

scripting ×1

unix ×1