Uma solução awk :
awk 'BEGIN{OFS=FS=","}!(($1,$2)in c){c[$1,$2]=1;r[$1]=r[$1] OFS $2}
END{for(i in r){print i r[i]}}' file
- Defina
OFS=FSpara consistência. - Use a matriz multidimensional de
awkpara lembrar o$2valores encontrados até agora. Apenas 'prosseguir' se não houver correspondência (!(($1,$2)in c)). - Forneça um valor 'fictício' para o array multidimensional no primeiro encontro de uma nova chave.
- Concatene a sequência de saída desejada em outro array por conveniência.
- No
END, imprima o loop.- Observe que a iteração de loop não está em nenhuma ordem específica, você pode usar os recursos de classificação de
awk, se necessário.
- Observe que a iteração de loop não está em nenhuma ordem específica, você pode usar os recursos de classificação de