我有一组100个日志文件,使用gzip压缩。 我需要find匹配给定expression式的所有行。 我会使用grep,但是当然,这是一个噩梦,因为我将不得不一一解压所有文件,grep它们并删除解压缩的版本,因为如果它们不适合我的sevrer全部解压缩。
任何人都有一个关于如何快速完成的小技巧?
你可能看看zgrep
。
>$ zgrep -h grep through gzip files usage: zgrep [grep_options] pattern [files]
zgrep
程序存在这个特定的目的。
或者,如果你的操作系统不带有zgrep
,就像这样。
gunzip -c somefile1.gz [...] | grep 'string'
有一个名为zcat
的实用程序,它是一个在gzip文件上工作的cat
版本。 在你的情况下,你可以做如下的事情:
zcat yourfile.gz | grep 'serverfault is awesome'
虽然zgrep
似乎是自切片面包以来的第二好的事情,我想我会张贴替代…
您可以使用pipe道在擦除日志文件之前将其解压缩,而不占用磁盘空间。 例如:
cat /var/log/program.log.*.gz | gunzip | grep 'stuff and things'