【问题标题】:MD5 checksum with File size带有文件大小的 MD5 校验和
【发布时间】:2014-07-16 22:24:30
【问题描述】:

我的任务是生成带有文件大小的 MD5 校验和。 我正在使用“md5deep.exe”来生成校验和。 例如,这是它生成的

32  6f9ded5211cf63f862f0c3c6f50d9ab6    /something.txt

第一列 = 大小, 第二列 - md5 校验和, 最后一列 = 文件名

是否有切换列?我想第一列中的 md5 校验和值和第二列中的文件大小。基本上我的脚本会创建一个文本文件。

test.txt

32  6f9ded5211cf63f862f0c3c6f50d9ab6    /something.txt
46  05c66e7d62f1bc975cc9ccb5a44b7c24    /some1.txt
2853383 2fcd0e40e2a24aaa59c412b48c4d80fa    /something2.txt

或者有什么方法可以使用 perl 切换列?

【问题讨论】:

    标签: perl hash md5


    【解决方案1】:

    是否也可以接受 awk 解决方案?

    $ awk '{print $2,$1,$3}' test.txt
    6f9ded5211cf63f862f0c3c6f50d9ab6 32 /something.txt
    05c66e7d62f1bc975cc9ccb5a44b7c24 46 /some1.txt
    2fcd0e40e2a24aaa59c412b48c4d80fa 2853383 /something2.txt
    

    如果没有,您可以使用这个 perl 变体:

    $ perl -ane 'print "@F[1,0,2]\n"' test.txt
    6f9ded5211cf63f862f0c3c6f50d9ab6 32 /something.txt
    05c66e7d62f1bc975cc9ccb5a44b7c24 46 /some1.txt
    2fcd0e40e2a24aaa59c412b48c4d80fa 2853383 /something2.txt
    

    【讨论】:

    • 非常感谢您的快速回复,但我尝试使用 "perl -ane 'print $F[1]," ",$F[0]," ",$F[2] . "\n"' test.txt" 它说“找不到字符串终止符”所以我尝试了“perl -ane 'print $F[1]," ",$F[0]," ",$F[2] . "\n"' test.txt;”那也没有用。第二次更改给了我以下错误“无法打开 perl 脚本“`-ane”:没有这样的文件或目录
    • 您使用的是什么操作系统和 perl 版本?至少它可以在 Ubuntu 上运行,并在带有 perl 5 版本 14 的 Windows 上使用 Cygwin。
    • 我正在使用带有 perl 版本 #5.8.3 build 809 的 windows
    • Kokkie 给了你一个sh shell 命令,但你使用的是cmd。相应调整。 perl -lane"print qq{@F[1,0,2]}" test.txt
    • 请注意,对于带有空格的文件名,这将失败。固定:perl -nle"@F=split(' ', $_, 3); print qq{@F{1,0,2}" test.txt
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2014-06-21
    • 2012-05-18
    相关资源
    最近更新 更多