bugmax a écrit :
Cependant, cela j'ai l'impression que cela fonctionne que lorsque chaque ligne du fichier 1 est au même emplacement que son équivalente dans le fichier 2. [...]Dans mon cas, même si je trie par ordre numeric ou alphabetique les 2 fichiers, les lignes ne sont pas au même rangs car il y par exemple certaine ligne qui n'ont pas d'équivalences d'un coté ou de l'autre.
|
Oui comme dit, il est impératif de faire un sort des fichiers avant le join. Mais l'absence d'un ligne dans l'un des fichiers ne pose pas de problème.
Je viens de tester et c'est exactement ce que j'obtiens avec avoir fait un sort sur les fichiers :
Code :
- nukolau@NAS:~$ cat 1.txt ; echo ; cat 2.txt ; echo ; join -o "1.2,2.2" -t ';' 1.txt 2.txt
- tata;bang@pouet.fr
- titi;bing@pouet.fr
- toto;bong@pouet.fr
- tutu;bung@pouet.fr
- tata;9748372
- tete;1625234
- titi;07348264
- bang@pouet.fr;9748372
- bing@pouet.fr;07348264
|
bugmax a écrit :
Pire, certaine lignes peuvent également amener à plusieurs références comme par exemple [...]
|
pareil, chez moi ça ne pose aucune problème une fois le sort réalisé :
Code :
- nukolau@NAS:~$ cat 11.txt ; echo ; cat 22.txt ; echo ; join -o "1.2,2.2" -t ';' 11.txt 22.txt
- plaplap;plap@pouet.fr
- pliplip;plip@pouet.fr
- ploplop;plop@pouet.fr
- plaplap;892839
- pliplip;0457632
- pliplip;8734623
- ploplop;347622
- plap@pouet.fr;892839
- plip@pouet.fr;0457632
- plip@pouet.fr;8734623
- plop@pouet.fr;347622
|
Pour info, ma version de join (celle par défaut sur ubuntu server LTS)
Citation :
nukolau@NAS:~$ join --version
join (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel.
|