如何在压缩文件中进行正则表达式/模式搜索?

如何在压缩文件中进行正则表达式/模式搜索?

如何在压缩文件下使用正则表达式/模式搜索。例如,嗯...让我们使用 -

/usr/share/doc/linux-image-4.8.0-1-amd64$ zcat changelog.gz | less

现在我使用的方法是通过 less 阅读内容时,使用 / 来定位名称或我使用的任何术语,但如果名称/术语多次重复,则这不能很好地工作/扩展。

我也尝试过——

 /usr/share/doc/linux-image-4.8.0-1-amd64$ zcat changelog.gz | grep $search-term | less

我确实得到了名称/搜索词,但没有迄今为止的周围上下文和其他内容。

有没有办法让搜索词突出显示,即使它在阅读changelog.gz时重复n次

我的意思的一个例子https://gist.github.com/shirishag75/e1238c16d2d372c4cfc3f62e25da335a

可以看出,我确实获得了搜索词/正则表达式,但如果没有日期时间上下文,如果不知道更改何时发生,它可能会有些毫无意义。

答案1

使用zgrep

zgrep 'PATTERN' file.gz

less然后,如果您愿意,您可以将其传送到寻呼机。

在 GNU 系统 (Linux) 上,在颜色等方面的zgrep行为与 GNU 类似。grep

要获取每场比赛的上下文,请使用类似-C 5(五行上下文)的内容。


less还突出显示匹配项(默认情况下,除非使用 关闭-G):

zless -p 'PATTERN' file.gz

这将打开解压缩的文件less并搜索PATTERN.用于n跳到文件中的下一个匹配项,或N返回到上一个匹配项。

答案2

要解压缩并在上下文中查看颜色匹配,请使用 grep -C 和 --color 参数。下面的例子。

gzip -dc changelog.gz | grep -C 5 --color $search-term

相关内容