如何在一个压缩文件和一个未压缩文件上运行"diff"?(bash或python)



我有一些文件,我想看看一个目录中的文件是否与另一个目录下的文件相同。问题是它们被gzip映射到其中一个目录中。据我所知,实现这一点的唯一方法是解压缩所有文件,在bash中运行diff,然后再次压缩文件。大约有200个文件,每个大约5 GB,所以如果可能的话,我不想这样做。

有别的办法吗?也许在Python(3(中?我找到了这个模块:https://docs.python.org/3/library/filecmp.html

我不知道如何将gzip文件与常规文件进行比较,因为其中一个文件将以字节形式读取,另一个文件则以unicode形式读取

import gzip, filecmp
path_1 = "path/to/query_1.txt"
path_2 = "path/to/query_2.txt.gz"

在bash 中

diff path/to/query_1.txt <(zcat path/to/query_2.txt.gz)

<(command)是一个命令重定向,它将所附命令的标准输出连接到一个文件名,然后可以在另一个进程中打开和读取该文件名。

它不是由/bin/sh理解的,但bashzshksh都理解它

相关内容

最新更新