从第二个文件中匹配多个字符串的非常大的gz文件中提取行的最佳方法是什么?
我已经尝试过,它适用于该字符串及周围环境:
gunzip -c /myfolder/large_file.gz | grep -B 50 "33754548" > /myfolder/specific_linesfrom_large_files.txt
但是,有时所需的字符串不在50行附近,所以我尝试了:
gunzip -c /myfolder/large_file.gz | grep -F /myfolder/multiple_strings.txt > /myfolder/specific_linesfrom_large_files.txt
哪些不起作用,有什么建议吗?
例如, multiple_strings.txt 文件可能包含:
16804029
42061608
42069963
42072123
177479064
177420374
答案 0 :(得分:1)
使用zgrep
搜索压缩文件。对于压缩文件,还有其他命令,如bzgrep
(对于bzip2文件),xzgrep
等。
zgrep -f match_strings.txt file.gz
-f
是从指定文件中读取模式的标志。
答案 1 :(得分:0)
gunzip -c /myfolder/large_file.gz | grep -f /myfolder/multiple_strings.txt > /myfolder/specific_linesfrom_large_files.txt
同时使用-x搜索精确模式,例如,如果搜索123,则可以使用-x匹配1234,123等。仅匹配123。