我正在使用(RHV),它将其所有文件记录在这个目录中:
$ 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*工具(如zgrep & zcat )来查看.gz和.Z文件,但它似乎不处理.xz压缩。
有什么简单的方法可以通过一个grep文件目录实现.xz呢?
发布于 2019-09-24 12:00:48
如果您查看RHEL/CentOS/Fedora发行版上的xz 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 .https://unix.stackexchange.com/questions/543424
复制相似问题