我有逗号分隔的3个档案文件,我需要根据第1个库存分组文件 根据第1个文件,如果有超过1行具有相同的第1列值,我需要根据第1列将第2和第3列值组合在一起
示例输入
aplple,shop1,11
aplple,shop2,11
orange,shop7,22
pine,shop8,23
pine,shop9,23
pine,shop11,23
pine,shop15,23
预期产出
aplple
11
shop1
shop2
orange
22
shop7
pine
23
shop9
shop11
shop15
答案 0 :(得分:2)
这是一个awk
解决方案:
awk -F, '{print ($1!=prev?$1RS$3RS$2:$2);prev=$1}' file
aplple
11
shop1
shop2
orange
22
shop7
pine
23
shop8
shop9
shop11
shop15
答案 1 :(得分:0)
Awk解决方案
awk -F, '{x=a[$1" "$3]=a[$1" "$3]?x"\n"$2:$2}END{for(i in a){split(i,b," ");print b[1] RS b[2] RS a[i]}}' file
或者
awk -F, '{x=a[$1"\n"$3]=a[$1"\n"$3]?x"\n"$2:$2}END{for(i in a){ print i RS a[i]}}' file