如何使用Linux搜索压缩文件

本指南将向您展示如何搜索压缩文件中的文本字符串或特定表达式。

如何使用Grep命令搜索和过滤结果

最强大的Linux命令之一是代表“Global Regular Expressions Print”的grep。

您可以使用grep来搜索文件内容中的模式或其他命令的输出。

例如,如果您运行以下ps命令,您将看到计算机上正在运行的进程列表。

ps -ef

结果快速滚动到屏幕上,如果通常有大量的结果。 这使得查看信息特别痛苦。

当然,您可以使用more命令一次列出一页结果页面,如下所示:

ps -ef | 更多

虽然上述命令的输出比前一个更好,但您仍然需要翻阅结果以找到要查找的内容。

grep命令可以根据发送给它的标准过滤结果。 例如,要搜索UID设置为“root”的所有进程,请运行以下命令:

ps -ef | grep根

grep命令也适用于文件。 想象一下你有一个包含书名列表的文件。 想象一下,你想看看文件是否包含“小红帽”。 您可以按如下方式搜索文件:

grep“小红帽”书单

grep命令功能非常强大,本文将展示大多数可用的开关。

如何使用zgrep命令搜索压缩文件

一个鲜为人知但功能非常强大的工具是zgrep。 zgrep命令可让您搜索压缩文件的内容,而无需首先提取内容。

zgrep命令可用于压缩zip文件或使用gzip命令压缩文件。

有什么不同?

一个zip文件可以包含多个文件,而使用gzip命令压缩的文件只包含原始文件。

要在使用gzip压缩的文件中搜索文本,只需输入以下命令:

zgrep表达式filetosearch

例如,想象一下书籍列表已使用gzip压缩。 您可以使用以下命令在压缩文件中搜索文本“小红帽”:

zgrep“小红帽”bookslist.gz

您可以使用任何表达式和通过grep命令提供的所有设置作为zgrep命令的一部分。

如何使用zipgrep命令搜索压缩文件

zgrep命令适用于使用gzip压缩的文件,但对使用zip实用程序压缩的文件效果不佳。

如果zip文件包含单个文件,但大多数zip文件包含多个文件,则可以使用zgrep。

zipgrep命令用于搜索zip文件中的模式。

举个例子,假设你有一个名为book的文件,其中包含以下标题:

另外想象一下你有一个叫做电影的文件,其中包含以下标题

现在想象这两个文件已经使用zip格式压缩成一个名为media.zip的文件。

您可以使用zipgrep命令在zip文件中的所有文件中查找模式。 例如:

zipgrep模式文件名

例如,假设你想查找“哈利波特”的所有事件,你可以使用下面的命令:

zipgrep“哈利波特”media.zip

输出结果如下:

书:哈利·波特与密室

书:哈利波特与凤凰社

电影:哈利波特与密室

电影:哈利波特与火焰杯

正如你可以使用任何带有zipgrep的表达式,你可以使用grep这使得这个工具非常强大,它使搜索zip文件比解压缩,搜索,然后再压缩更简单。

如果您只想搜索zip文件中的某些文件,则可以指定要在zip文件中搜索的文件作为命令的一部分,如下所示:

zipgrep“哈利波特”media.zip电影

现在输出结果如下

电影:哈利波特与密室

电影:哈利波特与火焰杯

如果要搜索除一个以外的所有文件,可以使用以下命令:

zipgrep“哈利波特”media.zip -x书籍

这将产生与以前相同的输出,因为它正在搜索除书籍以外的media.zip内的所有文件。