我想以下列形式为csv文件中的每一行添加一个唯一的链接
data1,name1,date1
data2,name2,date2
之后,它应该看起来像
data1,name1,date1,somedomain.com/test-ZmQwZTdiNzIyZGExYTc1Njg1YjJjMWE2
data2,name2,date2,somedomain.com/test-ZTdmYjY4N2M5MjM0NzcxYjJjNGE0N2I5
我想用
生成唯一的字符串date +%s | sha256sum | base64 | head -c 32 ; echo
我找到了部分方法,但我不知道如何把它放在一起。
答案 0 :(得分:2)
您可以使用内置awk
命令的getline
来调用外部命令,并将结果附加到每行的末尾。
假设您的日期位于最后一个字段$NF
awk -F "," '{
cmd = "date -d "$NF" +%s | sha256sum | base64 | head -c 32"
cmd | getline hash
print $0 FS hash
close(cmd)
}' file.csv
<强>输入强>
data1,name1,2017-11-01
data2,name2,2017-11-02
<强>输出强>
data1,name1,2017-11-01,YTRiYWNmYmExMmM0NjJhYjAzNzU4ZGIx
data2,name2,2017-11-02,MTBjYjNlZTc5ZmNlMTU2NWFiY2Q2NmJk