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=FS
para consistência. - Use a matriz multidimensional de
awk
para lembrar o$2
valores 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