如何使用awk为csv文件添加md5sum值

如何使用awk为csv文件添加md5sum值

我有如下格式的 csv 文件,

1,123-456,IND
2,234-567,US
3,345-678,AUS
4,333-444,SA

我不想使用任何循环,我想使用 AWK 命令为每行生成 md5sum 值,如下所示输出格式,

1,123-456,IND,<md5 value>
2,234-567,US,<md5 value>
3,345-678,AUS,<md5 value>
4,333-444,SA,<md5 value>

答案1

我根本不会涉及 awk,我只是直接使用 shell,但是你说“我想尝试使用 awk 命令”所以我认为你有一个很好的理由:

awk -v OFS=',' '{
    cmd = "echo \047" $0 "\047 | md5sum"
    val = ( (cmd | getline line) > 0 ? line : "FAILED")
    close(cmd)
    sub(/ .*/,"",val)
    print $0, val
}' file
1,123-456,IND,df6c21260b315d90fbbb6da2969b721c
2,234-567,US,764fd46b443bb125e48f154f964ee1d7
3,345-678,AUS,3b769d86ef698ca08de9dccabe402f02
4,333-444,SA,345b7e3e29df314844a7625e5b6e3486

上面假设每一行不包含您的 echo 版本可能会破坏的任何内容。

相关内容