Problème avec le join d'AIX

tbeghain Messages postés 63 Statut Membre -  
tbeghain Messages postés 63 Statut Membre -
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
A voir également:

2 réponses

Gauthier
 
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 63 Statut Membre 3
 
merci Gauthier, Le problème a effectivement été résolu par un sort. Ca marche bien mieux.

Thierry
0
tbeghain Messages postés 63 Statut Membre 3
 
voir message précédent
0