一次性搜索压缩文件和未压缩文件

一次性搜索压缩文件和未压缩文件

我有一个文件夹,里面有我想要搜索的压缩和解压后的日志文件。

我可以使用以下方式搜索非压缩文件

grep -r "my-search-string" /path/to/folder

并使用搜索压缩文件

find /path/to/folder -name "*.gz" -exec zcat "{}" + | grep "my-search-string"

是否有一行代码可以用来搜索所有压缩和解压的文件/path/to/folder

谢谢,马克斯

答案1

zgrep 是你的朋友!

   Zgrep  invokes grep on compressed or gzipped files.  All options speci‐
   fied are passed directly to grep.  If no file is  specified,  then  the
   standard input is decompressed if necessary and fed to grep.  Otherwise
   the given files are uncompressed if necessary and fed to grep.

我刚刚注意到某些 zgrep 版本没有 -r 选项。在这种情况下,您可以使用 find 模式来捕获所有文件并使用 zgrep 而不是 grep,例如:

查找 . -type f -exec zgrep'我的搜索字符串'“{}”\;

答案2

为“my-search-string”和路径导出一些有用的变量,然后搜索:

SEARCH='my-search-string' ; SEARCHPATH='/path/to/folder' ; grep -r "$SEARCH" $SEARCHPATH && find $SEARCHPATH -name "*.gz" -exec zcat "{}" + | grep "$SEARCH"

答案3

尝试使用 zgrep 和 grep

 zgrep -e  'inital text to search' ../../usr/local/*.* | grep 'more filter in zgrep respond'

相关内容