どのように `1の圧縮ファイルにdiff`と一つの非圧縮ファイルを実行するには?(bashのやPython)

O.rkへ:

私はいくつかのファイルを持っていると私は1つのディレクトリにあるものが他のディレクトリにあるものと同じファイルがあるかどうかを確認したいです。問題は、彼らがのいずれかのディレクトリにgzipで圧縮されていることです。私が知っている、これを行うための唯一の方法は実行され、それらのすべてを解凍することですdiff再度ファイルを圧縮し、その後、bashで。これは私が可能であればやりたいオプションではありませんので、5ギガバイトについてそれぞれ〜200件のファイルがあります。

これを行うための別の方法はありますか?おそらく、(3)Pythonで?私は、このモジュールが見つかりました:https://docs.python.org/3/library/filecmp.html

私は必ず1をUnicodeとしてバイトおよび他のように読み込まれますので、私は通常のファイルとgzip形式のファイルを比較することができる方法はありませんよ?

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、しかしbashzshおよびkshすべてのことを理解しています。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=398882&siteId=1