本指南將向您展示如何搜索壓縮文件中的文本字符串或特定表達式。
如何使用Grep命令搜索和過濾結果
最強大的Linux命令之一是代表“Global Regular Expressions Print”的grep。
您可以使用grep來搜索文件內容中的模式或其他命令的輸出。
例如,如果您運行以下ps命令,您將看到計算機上正在運行的進程列表。
ps -ef
結果快速滾動到屏幕上,如果通常有大量的結果。 這使得查看信息特別痛苦。
當然,您可以使用more命令一次列出一頁結果頁面,如下所示:
ps -ef | 更多
雖然上述命令的輸出比前一個更好,但您仍然需要翻閱結果以找到要查找的內容。
grep命令可以根據發送給它的標準過濾結果。 例如,要搜索UID設置為“root”的所有進程,請運行以下命令:
ps -ef | 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內的所有文件。