从 gz 文件中 grep 几个字符串
grep several strings from gz file
从一个非常大的 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
gunzip -c /myfolder/large_file.gz | grep -f /myfolder/multiple_strings.txt > /myfolder/specific_linesfrom_large_files.txt
同时使用 -x 搜索精确模式,例如,如果搜索 123,则可以匹配 1234、123 等。使用 -x 则只能匹配 123。
使用zgrep
搜索压缩文件。还有其他命令,如 bzgrep
(用于 bzip2 文件)、xzgrep
等用于压缩文件。
zgrep -f match_strings.txt file.gz
-f
是从指定文件中读取模式的标志。
从一个非常大的 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
gunzip -c /myfolder/large_file.gz | grep -f /myfolder/multiple_strings.txt > /myfolder/specific_linesfrom_large_files.txt
同时使用 -x 搜索精确模式,例如,如果搜索 123,则可以匹配 1234、123 等。使用 -x 则只能匹配 123。
使用zgrep
搜索压缩文件。还有其他命令,如 bzgrep
(用于 bzip2 文件)、xzgrep
等用于压缩文件。
zgrep -f match_strings.txt file.gz
-f
是从指定文件中读取模式的标志。