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

2 réponses

  1. 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
    1. 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
  2. tbeghain Messages postés 63 Statut Membre 3
     
    voir message précédent
    0