J'essaie de fusionner des lignes identiques sur la base de l'identifiant de la colonne 1. Les informations de la colonne 2 ne sont pas nécessairement identiques. Comment puis-je fusionner des doubles en conservant tous les enregistrements uniques de la deuxième colonne ?
Exemple des trois premières lignes de mes données :
>TRINITY_DN100377_c0_g1 GO:0046556,GO:0009044,GO:0045493,
>TRINITY_DN10038_c0_g1 GO:0005783,GO:0005789,GO:0016021,GO:0004581,
>TRINITY_DN10038_c0_g1 GO:0005789,GO:0004598
Je veux avoir :
>TRINITY_DN100377_c0_g1 GO:0046556,GO:0009044,GO:0045493,
>TRINITY_DN10038_c0_g1 GO:0005783,GO:0005789,GO:0016021,GO:0004581,GO:0004598,
Il suffit donc de fusionner les doubles mais en gardant tous les uniques de la colonne 2.
J'utilise :
cat file | sort -u | awk '!seen[$1]++' > newfile
Mais cela a pour seul résultat que la première rangée de doubles est conservée, les autres sont supprimées.
Quelqu'un peut-il m'aider ? Comment puis-je conserver tous les termes GO uniques ?