【问题标题】:Read file names from a list file one by one and create a md5 checksum list file in unix从列表文件中逐一读取文件名并在unix中创建md5校验和列表文件
【发布时间】:2020-03-17 20:08:01
【问题描述】:

我有一个列出文件名的列表文件:

List1.txt
File1
File2
File3
File4

我想遍历列表 1 中的文件名,并为列表 1 中的每个文件生成另一个 md5 校验和列表文件。

预期输出:

md5_list.txt
File1 MD5Value
File2 MD5Value
File3 MD5Value
File4 MD5Value

这是我想出的:

cat list1.txt | find -type f ! -name "list1.txt" -exec md5sum {} + | sort -k 2 > md5_list.txt

想知道这是否是正确的方法?如果是,有没有更有效的方法来完成这项工作?

谢谢

【问题讨论】:

  • 为什么要循环?只需通过他们md5。 xargs md5sum < List1.txt。构造 md5sum $(cat list1.txt) 将帮助您理解。您已经知道文件名,无需find 他们。
  • sort, sort < List1.txt | xargs md5sum > md5_list.txt
  • @DavidC.Rankin 这很简单,而且效果很好。
  • @KamilCuk 感谢您的建议。
  • 很高兴它有帮助!

标签: shell unix md5sum


【解决方案1】:

David C. Rankincomment 中给出的解决方案对我有用:

sort < List1.txt | xargs md5sum > md5_list.txt

【讨论】:

  • 请注意,md5sum 首先生成 MD5 校验和,然后生成文件名。这是明智的;每个 MD5 校验和的长度相同,但文件名的长度通常不同。如果真的很重要,请将md5sum 的输出通过awk '{print $2, $1}' 传输。
  • @JonathanLeffler 感谢您的建议。我确实尝试打印输出以供检查。看起来不错。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多