如何解决为列.CSV 文件中的每个值生成 md5sum,然后将生成的 md5sum 值与已给定的 md5sum 值进行比较
我是 Linux 的初学者,仍在学习,但我无法继续执行任务
第 1 列 - 文件名,
第 2 列 - 文件路径,
第 3 列 - 该文件的 md5sum 值(每行)。
我的目标是通过转到提到的路径(第 2 列)生成文件(第 1 列)的 md5sum 值,然后将该值与 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。