Problème avec le join d'AIX

Fermé
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 - 1 mars 2005 à 16:56
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 - 27 sept. 2007 à 15:01
Bonjour,
J'ai un script shell sous AIX qui fait un join de deux fichiers
fic2.txt :
test100:zone 1 :zone 2:zone 3
test10:zone 1:zone 2:zone 3
test:zone 1:zone 2:zone 3
fic3.txt:
test100:zone 4:zone 5
test10:zone 4:zone 5
test:zone 4: zone 5

Or la commande : join -11 -21 -t: fic2.txt fic3.txt

ne retourne que la ligne
test100:zone 1 :zone 2:zone 3:zone 4:zone 5

et pas les lignes
test100:zone 1:zone 2:zone 3:zone 4:zone 5
test10:zone 1:zone 2:zone 3:zone 4:zone 5
test:zone 1:zone 2:zone 3:zone 4:zone 5
comme je m'y attendais. Pourquoi ???? Avez vous une solution ?

merci pour vos réponses

Thierry

2 réponses

Salut,

Je ne sais pas si ton problème est toujours d'actualité mais j'ai une réponse.

Le join doit être precedé d'un sort sur la cle souhaitée (ici le premier champ). Je te suggère donc un
sort -t: -k 1,1 fic2.txt > sorted_fic2.txt
sort -t: -k 1,1 fic3.txt > sorted_fic3.txt


ce qui te donnera alors :
sorted_fic2.txt
test:zone 1:zone 2:zone 3
test10:zone 1:zone 2:zone 3
test100:zone 1 :zone 2:zone 3
sorted_fic3.txt
test:zone 4: zone 5
test10:zone 4:zone 5
test100:zone 4:zone 5

Ensuite ton join initial est ok :
join -11 -21 -t: sorted_fic2.txt sorted_fic3.txt 


Gauthier
0
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 3
14 avril 2005 à 08:37
merci Gauthier, Le problème a effectivement été résolu par un sort. Ca marche bien mieux.

Thierry
0
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 3
27 sept. 2007 à 15:01
voir message précédent
0