Recherche plus ajout de motif avec AWK

Résolu
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -  
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -
bonjour

j'ai deux files je veux chercher un nom et ajouter pour obtenir un file3

File1
QUEENS-2;QUEENS_1;BSCVIL8;
QUEENS-3;QUEENS_1;BSCVIL8;
JEAN_LEFEBVRE-1;BB_LEFEBVRE;BSCLUM4;
JEAN_LEFEBVRE-2;BB_LEFEBVRE;BSCLUM4;
BINATE-1;BINATE_1;BSCCAF9;
BINATE-2;BINATE_1;BSCCAF9;
BINATE-3;BINATE_1;BSCCAF9;
YALE-1;YALE_1;BSCSNT7;
YALE-2;YALE_1;BSCSNT7;
YALE-3;YALE_1;BSCSNT7;
BOISSY-1;BOISSY_1;BSCSNT6;
BOISSY-2;BOISSY_1;BSCSNT6;
BOISSY-3;BOISSY_1;BSCSNT6;
FAMA-1;FAMA_1;BSCCAF8;
FAMA-2;FAMA_1;BSCCAF8;
FAMA-3;FAMA_1;BSCCAF8;
IBIS-1;IBIS_1;BSCLUM5;
IBIS-2;IBIS_1;BSCLUM5;
IBIS-3;IBIS_1;BSCLUM5;
EMORAUDE-1;EMORAUDE_1;BSCVIL8;
EMORAUDE-2;EMORAUDE_1;BSCVIL8;
EMORAUDE-3;EMORAUDE_1;BSCVIL8;
MERCEDES-1;MERCEDES_1;BSCLUM4;
MERCEDES-2;MERCEDES_1;BSCLUM4;
MERCEDES-3;MERCEDES_1;BSCLUM4;
BELLE-1;BELLE_1;BSCCAF9;
BELLE-2;BELLE_1;BSCCAF9;
BELLE-3;BELLE_1;BSCCAF9;
MERMOZ-1;MERMOZ_1;BSCVIL10;
MERMOZ-2;MERMOZ_1;BSCVIL10;
MERMOZ-3;MERMOZ_1;BSCVIL10;
SODEFOR-1;SODEFOR_1;BSCVIL10;
SODEFOR-2;SODEFOR_1;BSCVIL10;
SODEFOR-3;SODEFOR_1;BSCVIL10;

FILE2
QUEENS-2;46674;
QUEENS-3;45477;
JEAN_LEFEBVRE-2;8899
BINATE-1;899
BINATE-2; 9900
BINATE-3;4899843
YALE-1;9809430°
YALE-2;98489
YALE-3;478478
BOISSY-1;34467
BOISSY-2;34676
BOISSY-3;34667
FAMA-1;44874
FAMA-2;446767
FAMA-3;
IBIS-1;
IBIS-2;
IBIS-3;

OBTENIR LE FIEL3

QUEENS-2;46674;BSCVIL8;
QUEENS-3;45477;BSCVIL8;
JEAN_LEFEBVRE-2;8899;BSCLUM4

ETC merci d'avance

8 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    awk -F ";" 'NR==FNR {t[$2]=$3; next} {print $0  t[$1]}' file1 file2
    1
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Avec la commande
    join
    du shell voilà ce que ça donne (avec f1 = FILE1 et f2 = FILE2) :

    $ join --nocheck-order -t';' -1 1 -2 1 -o 2.1 2.2 1.3 f1 f2
    QUEENS-2;46674;BSCVIL8
    QUEENS-3;45477;BSCVIL8
    JEAN_LEFEBVRE-2;8899;BSCLUM4
    BINATE-1;899;BSCCAF9
    BINATE-2; 9900;BSCCAF9
    BINATE-3;4899843;BSCCAF9
    YALE-1;9809430°;BSCSNT7
    YALE-2;98489;BSCSNT7
    YALE-3;478478;BSCSNT7
    BOISSY-1;34467;BSCSNT6
    BOISSY-2;34676;BSCSNT6
    BOISSY-3;34667;BSCSNT6
    FAMA-1;44874;BSCCAF8
    FAMA-2;446767;BSCCAF8
    FAMA-3;;BSCCAF8
    IBIS-1;;BSCLUM5
    IBIS-2;;BSCLUM5
    IBIS-3;;BSCLUM5

    Zen my nuggets ;-)
    Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. <('')
    0
  3. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    bonjour Zipe1

    la commande ne me donne pas d'output

    peut tu revoir stp.

    merci
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ben chez moi elle en donne (la preuve avec mon message précédent), donc c'est sûrement tes fichiers d'entrée qui ne sont pas bons (format UNIX/DOS?) ou ta version de
      join
      ou encore ton système ;-\

      $ join --version
      join (GNU coreutils) 8.13

      $ file f1 f2
      f1: ASCII text
      f2: UTF-8 Unicode text
      0
  4. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    c'est toujours pas bon

    [html@topo P_OCI]$ file CSR_OCI.txt CSR.txt
    CSR_OCI.txt: ASCII text
    CSR.txt: ASCII text
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    $ join --version
    join (GNU coreutils) 8.4
    Copyright © 2010 Free Software Foundation, Inc.
    License GPLv3+ : GNU GPL version 3 ou ultérieure
    <http://gnu.org/licenses/gpl.html>
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hellawk
    awk -F ";" 'NR==FNR {t[$1]=$3; next} {print $0  t[$1]}' file1 file2
    QUEENS-2;46674;BSCVIL8
    QUEENS-3;45477;BSCVIL8
    JEAN_LEFEBVRE-2;8899BSCLUM4
    ...
    0
  8. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    desole j'ai vue mon erreur c'est plutot les fichier suivant

    file1

    File1
    QUEENS-2;QUEENS_1;BSCVIL8;
    QUEENS-3;QUEENS_1;BSCVIL8;
    JEAN_LEFEBVRE-1;BB_LEFEBVRE;BSCLUM4;
    JEAN_LEFEBVRE-2;BB_LEFEBVRE;BSCLUM4;
    BINATE-1;BINATE_1;BSCCAF9;
    BINATE-2;BINATE_1;BSCCAF9;
    BINATE-3;BINATE_1;BSCCAF9;
    YALE-1;YALE_1;BSCSNT7;
    YALE-2;YALE_1;BSCSNT7;
    YALE-3;YALE_1;BSCSNT7;
    BOISSY-1;BOISSY_1;BSCSNT6;
    BOISSY-2;BOISSY_1;BSCSNT6;
    BOISSY-3;BOISSY_1;BSCSNT6;
    FAMA-1;FAMA_1;BSCCAF8;
    FAMA-2;FAMA_1;BSCCAF8;

    file2

    QUEENS_1;46674;
    QUEENS_1;45477;
    JEAN_LEFEBVRE-2;8899
    BINATE_1;899
    BINATE_1; 9900
    BINATE_1;4899843
    YALE_1;9809430°
    YALE_1;98489
    YALE_1;478478
    BOISSY_2;34467
    BOISSY_2;34676
    BOISSY_2;34667

    merci pour ton aide Zipe1

    la comaparaison du file 2 champ1 avec champ2 du file 1

    peut -tu refaire le join en tenant compte de ce paramètres

    merci d'avance
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Le problème c'est que ça doublonne par moment :
      $ join --nocheck-order -t';' -1 2 -2 1 -o 2.1 2.2 1.3 f1 f2
      QUEENS_1;46674;BSCVIL8
      QUEENS_1;45477;BSCVIL8
      QUEENS_1;46674;BSCVIL8
      QUEENS_1;45477;BSCVIL8
      YALE_1;9809430°;BSCSNT7
      YALE_1;98489;BSCSNT7
      YALE_1;478478;BSCSNT7
      YALE_1;9809430°;BSCSNT7
      YALE_1;98489;BSCSNT7
      YALE_1;478478;BSCSNT7
      YALE_1;9809430°;BSCSNT7
      YALE_1;98489;BSCSNT7
      YALE_1;478478;BSCSNT7

      Avec un
      sort -u
      ça règle le problème :
      $ join --nocheck-order -t';' -1 2 -2 1 -o 2.1 2.2 1.3 f1 f2 | sort -u
      QUEENS_1;45477;BSCVIL8
      QUEENS_1;46674;BSCVIL8
      YALE_1;478478;BSCSNT7
      YALE_1;9809430°;BSCSNT7
      YALE_1;98489;BSCSNT7
      0
  9. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    bonjour

    Merci beaucoup a vous pour votre sollicitude.

    Tout fonctionne a merveille.

    cordialement
    0