Z 命令的力量——Zcat、Zless、Zgrep、Zdiff 示例

举报
Tiamo_T 发表于 2021/11/09 10:46:18 2021/11/09
【摘要】 在本文中,让我们回顾一下如何使用强大的 Linux Z 命令对压缩文件执行正常的文件操作。 其中一些z命令临时解压缩/tmp目录中的文件以执行指定的操作。一些z命令会动态解压缩以执行指定的操作。但是,在任何情况下,z命令都可以让您安心,因为您不必担心为了执行操作而解压缩压缩文件的开销。

在本文中,让我们回顾一下如何使用强大的 Linux Z 命令对压缩文件执行正常的文件操作。
其中一些z命令临时解压缩/tmp目录中的文件以执行指定的操作。一些z命令会动态解压缩以执行指定的操作。但是,在任何情况下,z命令都可以让您安心,因为您不必担心为了执行操作而解压缩压缩文件的开销。



可以对压缩文件进行以下正常的文件操作

  1. 使用 zcat 查看压缩文件。
  2. 使用 zless / zmore 对压缩文件进行分页。
  3. 使用 zgrep / zegrep 在压缩文件中搜索。
  4. 使用 zdiff / zcmp 比较文件

示例 1:查看压缩文件并使用 zcat 解压缩

使用 gzip 压缩文件会创建一个扩展名为 *.gz 的压缩文件。您可以通过以下方式使用 zcat 查看压缩文件。这与未压缩文件操作“cat filename”相同。zcat 解压缩文件并将其显示在标准输出中。

$ zcat filename.gz | more
$ ls -l big-file.*
-rw-r--r-- 1 ramesh ramesh 24853275 May  9 15:14 big-file.txt

$ gzip big-file.txt 
[Note: Compress the file]

$ ls -l big-file.*
-rw-r--r-- 1 ramesh ramesh 9275204 May  9 15:14 big-file.txt.gz

$ zcat big-file.txt.gz 
[Note: View the file without uncompressing it]

zcat big-file.txt.gz > big-file.txt
[Note: Uncompress the file]

示例 2:查看没有 gz 后缀的 gzip 文件。

您可以解压缩没有 gz 后缀的 gzipped 文件。如果您尝试使用“gunzip”或“gzip -d”命令解压缩没有 gz 后缀的 gzip 文件,您将面临以下错误。

gunzip: auth.log: unknown suffix -- ignored

但是这个 zcat 将解压缩文件并显示如下所示的内容。

$ cat > test-file.txt
This is a test file used for gunzip and zcat testing

zcat is awesome command.  

$ gzip test-file.txt

$ mv test-file.txt.gz test-file-no-ext

$ gzip -d test-file-no-ext
gzip: test-file-no-ext: unknown suffix -- ignored

$ zcat test-file-no-ext
This is a test file used for gunzip and zcat testing

zcat is awesome command.

示例3:显示文件内容而不用担心是否被压缩

当您不确定文件是否被压缩时,您仍然可以查看文件而无需担心其压缩状态,如下所示。

在这个例子中,如果输入文件被压缩,zcat 将通过解压缩来显示内容。如果输入文件未压缩,zcat 将按原样显示内容。

$ zcat -f input-file

示例 4:使用 zless / zmore 对压缩文件进行分页。

您可以使用 zless 命令或 zmore 命令对压缩文件进行分页,如下所示。


$ zcat filename.gz | more
$ zcat filename.gz | less

(or)

$ zless filename.gz
$ zmore filename.gz

示例 5:使用 zgrep / zegrep 在压缩文件中搜索。

您可以使用 zgrep / zegrep 在压缩文件中进行搜索,如下所示。这与未压缩文件操作“grep -i filename”相同。zgrep 命令的所有选项都将传递给 grep,并且文件将被提供给 grep 命令。如果需要,它可以解压缩并将文件提供给 grep 命令。

$ cat > test-file.txt
gzip, gunzip, zcat - compress or expand files
zless - file perusal filter for crt viewing of compressed text
zcmp, zdiff - compare compressed files

$ grep -i less test-file.txt
zless - file perusal filter for crt viewing of compressed text

$ gzip test-file.txt

$ zgrep -i less test-file.txt.gz
zless - file perusal filter for crt viewing of compressed text

示例 6:使用 zdiff / zcmp 比较文件

您可以使用 zdiff / zcmp 比较两个压缩文件,如下所示。这与未压缩文件操作“diff file1 file2”相同。

$ cat > file1.txt
This is line one
This is line two

$ cat > file2.txt
This is line 1
This is line two

$ diff file1.txt file2.txt
1c1
< This is line one
---
> This is line 1

$ gzip file1.txt file2.txt 

$ zdiff file1.txt.gz file2.txt.gz
1c1
< This is line one
---
> This is line 1
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。