2011-11-22 89 views
1

當定義選項「-l」時,grep或egrep顯示匹配文件的文件名。zgrep - 列表匹配的文件名

但是,我有一個巨大的文件(tar.gz),其中包含數千個文件,我需要找出哪些文件包含模式。問題是:

zgrep -la testPattern HugeFile.tar.gz 

只給出了tar.gz文件的名稱,而不是它中的文件,它與模式匹配。

這似乎是一個bug,但也許我誤解了一些東西......有沒有人知道如何做到這一點沒有gunzipping或untare存檔?

回答

1

zgrep是使用gzip文件到標準輸出和管道解壓到grep的shell腳本。它不能分辨tarball中的哪個文件匹配。

你可以嘗試一種可能的方式:安裝使用fuse和libarchive的archivemount,允許你像安裝文件系統一樣「掛載」tarball。那麼你應該能夠在安裝點下grep。我以前沒有嘗試過,但它比爲grep解壓所有內容要好。