繁体   English   中英

为列(.CSV 文件)中的每个值生成 md5sum,然后将生成的 md5sum 值与已给定的 md5sum 值进行比较

[英]To generate md5sum for each value in a column (.CSV file) and then compare the generated md5sum value with the already given md5sum value

我是 Linux 的初学者,仍在学习,但无法继续执行任务

所以有一个包含几列的 CSV 文件。

第 1 列 - 文件名,

第 2 列 - 文件路径,

第 3 列 - 该文件的 md5sum 值(每行)。

我的目标是通过转到提到的路径(第 2 列)生成文件的 md5sum 值(第 1 列),然后将该值与 CSV 文件中已经存在的 md5sum 进行比较,同时忽略前三行(标题) . 对于 CSV 文件中的所有行

例子

cat Sample.csv

header1 
header2
file,pathTofile,md5sum
script.sh,/c/folder,987fg98df7g9df7g94353454
another.sh,/c/training/folder,54657981sdssgs654643535

输出假设第 1 行具有正确的 md5sum 值而第 2 行没有)

md5sum is a match for script.sh
md5sum is not a match for another.sh

提前致谢

来自man md5sum

-c, --check
从文件中读取 MD5 和并检查它们

这里 FILE 与md5sum的输出格式相同:

bb8c5900589a82f48e15c2688670de39  file1
f23d2d7f519425c547d9e4287940ef72  /path/to/file2
...

因此,您可以重新排列 csv 文件以具有相同的格式,然后运行md5sum -c

awk -F, 'NR>3 {print $3"  "$2"/"$1}' Sample.csv | md5sum -c

NR>3跳过您的标题。 如果您的示例不准确,请确保将3替换为标题行的实际数量。

md5sum -c的输出看起来像

file1: OK
/path/to/file2: OK
some/corrupted/file: FAILED
file4: OK
...
md5sum: WARNING: 1 computed checksum did NOT match

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM