zgrep - 列出匹配的文件名

时间:2011-11-22 01:30:40

标签: bash grep

当您定义选项“-l”时,

grep或egrep显示匹配文件的文件名。

但是,我有一个包含数千个文件的巨大文件(tar.gz),我需要找出哪些文件包含模式。问题是:

zgrep -la testPattern HugeFile.tar.gz

只给我tar.gz文件的名称,而不是其中与文件匹配的文件。

这对我来说似乎是一个错误,但也许我误解了一些事情......有没有人知道怎么做而不会没有枪杀或解压档案?

2 个答案:

答案 0 :(得分:4)

zgrep'ing tar.gz不会做你期望它做的事情(它有效地抓住原始tar图像)。

然而,您可以在其他问题中采用替代方法:

Performing grep operation in tar files without extracting

答案 1 :(得分:1)

zgrep是一个shell脚本,它使用gzip将文件解压缩到stdout并导入到grep中。它无法分辨tarball中的哪个文件匹配。

您可以尝试一种可能的方法:安装使用fuse和libarchive的archivemount,允许您安装" mount"一个tarball就像一个文件系统。然后你应该能够在挂载点下grep。我之前没有尝试过,但它比grep更好地解决了所有事情。