如何使用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內的所有文件。