2017-04-03 65 views
-2

我有一个在第3列中包含空值的CSV文件。我需要使用第二列的散列来更新此列。用HASH替换列

下面示例代码:

#!/bin/bash 
declare key='ABCDEFGHIJKLMNOP123456' 
awk -F"," '{$3 = $2"$key";print}' C:/test.csv > C:/output.csv 

,在这里我的样本CSV

A,B,? 
B,D,? 
F,jk,? 

我的代码的输出是不正确的,我没有得到Key值,但关键变量名

A,B,key 
B,D,key 
F,jk,key 

你可以请帮忙concat键值与第二列然后申请一个散列(md5例如)

主要问题是如何在AWK中应用哈希。

在此先感谢

+1

检查如何申报'awk' –

+0

感谢PS变量,我可以使用MD5里面AWK吗? –

回答

0

我找到了解决办法

awk -F "," -v env_var="$key" '{ 
     tmp="echo -n "$2env_var" | openssl md5 | cut -f2 -d\" \"" 
    tmp | getline cksum 
    $3=cksum 
    print 
    }'