我有两个csv文件 文件1:
firstName lastName internalId email phoneNumber
XX YY 123 xx@mail.fr 003312345600
ZZ QQ 147 zz@mail.fr 003371236500
KK JJ 159 kk@mail.fr 003369865300
文件2:
internalId email phoneNumber
159 ss@mail.fr 003379632500
147 ee@mail.fr 003396325200
我想加入文件1和文件2来获得此结果
firstName lastName internalId email phoneNumber
XX YY 123 xx@mail.fr 003312345600
ZZ QQ 147 ee@mail.fr 003396325200
KK JJ 159 ss@mail.fr 003369865300
修改电子邮件和phoneNumber如果找到相同的internalId,如果不是我保持相同的值
答案 0 :(得分:1)
awk 解决方案:
awk 'NR==FNR{ a[$1]=$2 FS $3; next }
FNR>1 && ($3 in a){ split(a[$3], b); $4=b[1]; $5=b[2] }1' file2 file1 | column -t
NR==FNR
- 处理第一个输入文件,即file2
a[$1]=$2 FS $3
- 使用文件a
的第二个$2
和第三个字段$3
的连接值填充数组file2
(即{{ 1}}和email
)使用第一个字段值phoneNumber
对其进行索引,即$1
internalId
- 处理第二个输入文件FNR>1 && ($3 in a)
,在匹配的file1
上进行替换
输出:
internalId
答案 1 :(得分:0)