Recherche plus ajout de motif avec AWK

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 13 févr. 2014 à 11:29
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 13 févr. 2014 à 13:43
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
13 févr. 2014 à 13:28
awk -F ";" 'NR==FNR {t[$2]=$3; next} {print $0  t[$1]}' file1 file2
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
Modifié par zipe31 le 13/02/2014 à 12:09
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 févr. 2014 à 12:10
bonjour Zipe1

la commande ne me donne pas d'output

peut tu revoir stp.

merci
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 févr. 2014 à 12:15
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 févr. 2014 à 12:33
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 févr. 2014 à 12:34
$ 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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
13 févr. 2014 à 13:03
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 févr. 2014 à 13:04
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 févr. 2014 à 13:31
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 févr. 2014 à 13:43
bonjour

Merci beaucoup a vous pour votre sollicitude.

Tout fonctionne a merveille.

cordialement
0