Se bem entendi, você está procurando
perl -lane 'push @{$k{$F[0]}},$F[1];
END{$"=", ";print "$_ @{$k{$_}}" for sort keys(%k)}' file
Não há motivo para dividir explicitamente a linha, a -a
flag já faz isso para você. Ele dividirá cada linha de entrada na matriz @F
. Então, aqui nós criamos o %k
hash cujas chaves são os primeiros campos e cujos valores são as listas correspondentes dos 2º campos. Em seguida, no final, classificamos as chaves de hash, definimos o separador de lista ( $"
) como ,[space]
e imprimimos cada chave e sua lista de valores correspondente.