Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3482 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  faire un join sur plusieurs champs à la fois?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

faire un join sur plusieurs champs à la fois?

n°1468429
morpheas
Posté le 31-10-2006 à 18:47:33  profilanswer
 

Bonjour!
 
Je cherche désespérément à faire un join de 2 fichiers, dont les 2 premiers champs doivent être identiques.
 
J'ai essayé des commandes du style:
join -j 1 -j 2 fichier1 fichier2
 
mais ça ne marche pas, j'ai l'impression que la 2e condition est tout bonnement ignorée...
 
Est-il possible de faire un join sur plusieurs champs à la fois?
 
Mon but est de "filtrer" le fichier1 avec le fichier2 (qui ne contient que les 2 colonnes servant de filtre), et ne récupérer que les lignes dont les 2 premières colonnes figurent dans une ligne du fichier2. Quelqu'un aurait-il éventuellement une autre piste à me proposer? (sachant que j'ai des contraintes de performance...)
 
Merci d'avance!

mood
Publicité
Posté le 31-10-2006 à 18:47:33  profilanswer
 

n°1468445
wackevat
Posté le 31-10-2006 à 19:27:53  profilanswer
 

Déjà c'est pour quel environement ?

n°1468580
morpheas
Posté le 01-11-2006 à 10:05:16  profilanswer
 

Pardon, c'est sous HP-Unix en ksh.

n°1468872
aigles
Posté le 01-11-2006 à 21:50:14  profilanswer
 

join ne peut faire la jointure que sur un seul champ.
 
Voici une solution simple utilisant awk (les fichiers n'on pas besoin d'être triés sur les champs de jointure) :

awk '
     NR==FNR { filtre[$1,$2]=1 ; next }
     filtre[$1,$2]
    ' fichier2 fichier1



---------------
Jean Pierre.
n°1469148
morpheas
Posté le 02-11-2006 à 11:38:08  profilanswer
 

Ca marche! Et avec des performances extra en prime!
 
Merci beaucoup!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  faire un join sur plusieurs champs à la fois?

 

Sujets relatifs
[SQL]Plusieurs sémaphores pour une même connexionBenchmark à travers plusieurs script ?
Appel de fonction dans plusieurs fichiersAppel d'une fonction dans plusieurs fichiers
[mysql] Join ?[C] fgets ne marche qu'une fois...
[] Afficher un msg que si le prog est executé pour la 1ére fois...une grosse table VS plusieurs tables de tailles moyennes ?
Plusieurs "submit" dans une meme page ?Utilisation de plusieurs contrôles utilisateurs dans une même page
Plus de sujets relatifs à : faire un join sur plusieurs champs à la fois?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR