2017-06-02 86 views
0

让说,我有一个文件壳牌分组文件重复模式

a,anything,keyboard 
b,anything,mouse 
c,anything,door 
a,anything,monitor 
d,anything,keyboard 

至于结果,我想

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard 

模式“一”重复,我想“键盘”和“监控”合并为在结果中。

我的问题是如何将图案在每个行的开始重复(在本例中,“A”)合并成一个线添加什么是不同的(在本例中,加入的字“监视器”

猫FILE.CSV |切-d '' -f1 |排序-u 结果:

a 
b 
c 
d 

我想要的结果:

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard 
+1

什么的,你需要在这里实现_sorting_一部分? – Inian

+0

我已经增加了我的问题;) – bein

+1

关于如何为键组合收集多个值可能存在很多重复项,但我无法快速找到完全重复此项的项。这并不罕见,我鼓励你搜索以前的类似问题。 – tripleee

回答

1

我称之为分组不是分类

GAWK(GNU AWK)解决方案:

awk -F, 'BEGIN{ PROCINFO["sorted_in"]="@val_str_asc" }{ a[$1]=($1 in a)? a[$1]" - "$3 : $0 } 
     END{ asort(a); for(i in a) print a[i] }' file 

输出:

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard