我在awk中有一个不寻常的合并请求。希望你能帮忙。
File1中
pl1,prop1,20
pl1,prop2,30
pl1,prop3,40
pl2,prop1,70
pl2,prop2,80
pl2,prop3,90
pl3,prop1,120
pl3,prop2,130
pl3,prop3,140
文件2
store1,pl1
store2,pl1
store3,pl2
store4,pl3
store5,pl2
store6,pl1
输出:
prop1, store1-20, store2-20, store3-70, store4-120, store5-70, store6-20
prop2, store1-30, store2-30, store3-80, store4-130, store5-80, store6-30
prop3, store1-40, store2-40, store3-90, store4-140, store5-90, store6-40
规则
非常感谢,
答案 0 :(得分:0)
我假设这些空行实际上不在您的输入文件中。
使用具有真正数组数组的GNU awk:
gawk -F, '
NR==FNR { prop[$2][$1] = $3; next }
{ pl[$2][$1] = 1 }
END {
for (key in prop) {
printf "%s", key;
for (subkey in prop[key]) {
for (store in pl[subkey]) {
printf ", %s-%d", store, prop[key][subkey]
}
}
print ""
}
}
' File1 File2
prop1, store1-20, store2-20, store6-20, store3-70, store5-70, store4-120
prop2, store1-30, store2-30, store6-30, store3-80, store5-80, store4-130
prop3, store1-40, store2-40, store6-40, store3-90, store5-90, store4-140