awk 在另一个 awk 的系统中

Jul*_*iaz 1 awk hashsum

我得到了一个包含同一文件夹中文件的 md5 值的文件。信息md5checksums.txt以以下格式存在于文件中:

b0da7ead9d82a3494d7e0a7099871ef4  ./GCF_000959505.1_ASM95950v1_assembly_report.txt
7ff32cbb16daf46c87b3546ad576ff66  ./GCF_000959505.1_ASM95950v1_assembly_stats.txt
034081da3aa0708f06c2ec1129e4aca9  ./GCF_000959505.1_ASM95950v1_cds_from_genomic.fna.gz
Run Code Online (Sandbox Code Playgroud)

我想对所有文件进行 md5 检查。我得到了这个命令:

awk '{system("md5 "$2)}' md5checksums.txt
Run Code Online (Sandbox Code Playgroud)

但这只是获得 md5 值

MD5 (./GCF_000959505.1_ASM95950v1_assembly_report.txt) = b0da7ead9d82a3494d7e0a7099871ef4
MD5 (./GCF_000959505.1_ASM95950v1_assembly_stats.txt) = 7ff32cbb16daf46c87b3546ad576ff66
MD5 (./GCF_000959505.1_ASM95950v1_cds_from_genomic.fna.gz) = 3a30966523a36368ab432f666001f80a
Run Code Online (Sandbox Code Playgroud)

我想针对第一列提取计算出的 md5,md5checksums.txt 我认为我可以在 awk 中执行类似 awk 的操作,但我无法让它工作:

awk '{system("md5 "$2" | awk HERE EVALUATE RESULTS AND CHECK IF EQUAL TO $1")}' md5checksums.txt
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 5

我有点困惑你为什么要参与awk这个。

要验证 GNU 生成的文件中的 MD5 校验和md5sum,您可以

md5sum -c file.txt
Run Code Online (Sandbox Code Playgroud)

或者,在md5实用程序支持的 OpenBSD 或 NetBSD 系统上-c filename(非 FreeBSD 或 macOS):

md5 -c file.txt
Run Code Online (Sandbox Code Playgroud)

在您的情况下,file.txt将是您的md5checksums.txt文件。