我有一组 100 个日志文件,使用 gzip 压缩。我需要找到与给定表达式匹配的所有行。我会使用 grep,但当然,这有点麻烦,因为我必须逐个解压缩所有文件,然后 grep 它们并删除解压缩的版本,因为如果将它们全部解压缩,它们将无法全部容纳在我的服务器上。
有人有快速完成这件事的小技巧吗?
答案1
您也许可以看一下zgrep
。
>$ zgrep -h
grep through gzip files
usage: zgrep [grep_options] pattern [files]
答案2
该zgrep
计划就是为了这个特定目的而存在的。
答案3
或者,如果您的操作系统没有附带zgrep
,则类似这样的内容。
gunzip -c somefile1.gz [...] | grep 'string'
答案4
虽然这zgrep
似乎是自切片面包以来第二好的东西,但我想发布一个替代方案......
您可以使用管道在 grep 之前解压日志文件,这样不会占用磁盘空间。例如:
cat /var/log/program.log.*.gz | gunzip | grep 'stuff and things'