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