如何通过 .xz 来“grep”压缩文件?

如何通过 .xz 来“grep”压缩文件?

我正在使用红帽虚拟化(右心室病毒)并将其所有文件记录在此目录中:

$ pwd
/var/log/vdsm

$ ls | column -c 80 | head -10
backup          vdsm.log.34.xz      vdsm.log.69.xz
import          vdsm.log.35.xz      vdsm.log.6.xz
mom.log         vdsm.log.36.xz      vdsm.log.70.xz
mom.log.1       vdsm.log.37.xz      vdsm.log.71.xz
mom.log.2       vdsm.log.38.xz      vdsm.log.72.xz
mom.log.3       vdsm.log.39.xz      vdsm.log.73.xz
mom.log.4       vdsm.log.3.xz       vdsm.log.74.xz
mom.log.5       vdsm.log.40.xz      vdsm.log.75.xz
supervdsm.log   vdsm.log.41.xz      vdsm.log.76.xz
upgrade.log     vdsm.log.42.xz      vdsm.log.77.xz

我已经使用&z*等工具来查看&文件,但它似乎不处理压缩。zgrepzcat.gz.Z.xz

grep浏览文件目录的简单方法是什么.xz

答案1

如果您查看xzRHEL/CentOS/Fedora 发行版上的 RPM 提供的工具,该 RPM 包含一些帮助程序包装脚本,您可以使用它们来快速完成此工作。

识别潜在客户

对于此类问题,我通常首先找到提供工具的 RPM。在本例中xz是压缩 CLI,所以让我们找到它并看看 RPM 提供了什么:

$ type -f xz
xz is /usr/bin/xz

$ rpm -qf /usr/bin/xz
xz-5.2.2-1.el7.x86_64

现在让我们看看它是否提供了包含该名称的任何内容grep

$ rpm -ql xz | grep -E 'bin/.*grep'
/usr/bin/xzegrep
/usr/bin/xzfgrep
/usr/bin/xzgrep

确实如此。因此,让我们尝试使用,xzgrep因为这就是我们在功能方面所追求的:

$ xzgrep -l ocp-app-01c *
mom.log.4
vdsm.log.2.xz
vdsm.log.81.xz

笔记:上面我们正在查找包含它的文件ocp-app-01c并打印包含它的文件。

用法

用法与以下相同grep

$ xzgrep --help
Usage: xzgrep [OPTION]... [-e] PATTERN [FILE]...
Look for instances of PATTERN in the input FILEs, using their
uncompressed contents if they are compressed.

OPTIONs are the same as for 'grep'.

Report bugs to <[email protected]>.

相关内容