Recherche plus insertion 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 - Modifié par GHISLINO le 7/01/2014 à 09:21
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 8 janv. 2014 à 12:35
Bonjour,

je possède deux fichiers FILE1 et FILE2 je veux rechercher les éléments en gras du FILE1 dans FILE2 puis insérer le champ 3 du FILE1 pour obtenir le FILE3 ci-dessous

Merci d'avance.




FILE1

12,BSCYAKRO4,TRIANIKRO,Abis TP 132
62,BSCABG5,BOUAPE,Abis TP 167
62,BSCABG5,AHOKOI,Abis TP 73
62,BSCABG5,ANANGUIE_ADZOPE,Abis TP 81
48,BSCBKE3,OUNANDIEKAHA,Abis TP 120
48,BSCBKE3,FRONAN,Abis TP 148
62,BSCABG5,BOUAPE,Abis TP 176
62,BSCABG5,AHOKOI,Abis TP 73
62,BSCABG5,ANANGUIE_ADZOPE,Abis TP 81
62,BSCABG5,MOAPE,Abis TP 83
62,BSCABG5,YAKASSE_OTTOBROU,Abis TP 98






FILE2

BSCYAKRO4 Abis TP 132[_132];190763,BSC-TRANS [101] RAI [5];2014/01/05 00:38:20.2Z;2014/01/05 00:38:21.1Z
BSCYAKRO4 Abis TP 132[_132];190762,BSC-TRANS [101] RAI [5];2014/01/05 00:38:18.2Z;2014/01/05 00:38:19.1Z
BSCYAKRO4 Abis TP 132[_132];190760,BSC-TRANS [101] RAI [5];2014/01/05 00:38:16.7Z;2014/01/05 00:38:17.4Z
BSCYAKRO4 Abis TP 132[_132];190759,BSC-TRANS [101] RAI [5];2014/01/05 00:38:15.1Z;2014/01/05 00:38:16.0Z
BSCYAKRO4 Abis TP 132[_132];190758,BSC-TRANS [101] RAI [5];2014/01/05 00:38:13.2Z;2014/01/05 00:38:14.0Z
BSCYAKRO4 Abis TP 132[_132];190757,BSC-TRANS [101] RAI [5];2014/01/05 00:38:11.6Z;2014/01/05 00:38:12.4Z
BSCYAKRO4 Abis TP 132[_132];190755,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.0Z;2014/01/05 00:38:10.9Z
BSCYAKRO4 Abis TP 63[_63];190756,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.1Z;2014/01/05 00:38:16.0Z
BSCYAKRO4 Abis TP 63[_63];190754,BSC-TRANS [101] RAI [5];2014/01/05 00:38:09.3Z;2014/01/05 00:38:09.5Z
BSCYAKRO4 Abis TP 132[_132];190752,BSC-TRANS [101] RAI [5];2014/01/05 00:38:08.0Z;2014/01/05 00:38:08.9Z
BSCBKE3 Abis TP 120[_120];194057,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.0Z;2014/01/05 00:38:07.4Z
BSCBKE3 Abis TP 148[_148];194058,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.1Z;2014/01/05 00:38:08.2Z
BSCABG5 Abis TP 176[_176];174289,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 73[_73];174286,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.4Z
BSCABG5 Abis TP 81[_81];174290,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 83[_83];174287,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.2Z
BSCABG5 Abis TP 98[_98];174288,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.3Z




resultat final FILE3

BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190763,BSC-TRANS [101] RAI [5];2014/01/05 00:38:20.2Z;2014/01/05 00:38:21.1Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190762,BSC-TRANS [101] RAI [5];2014/01/05 00:38:18.2Z;2014/01/05 00:38:19.1Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190760,BSC-TRANS [101] RAI [5];2014/01/05 00:38:16.7Z;2014/01/05 00:38:17.4Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190759,BSC-TRANS [101] RAI [5];2014/01/05 00:38:15.1Z;2014/01/05 00:38:16.0Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190758,BSC-TRANS [101] RAI [5];2014/01/05 00:38:13.2Z;2014/01/05 00:38:14.0Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190757,BSC-TRANS [101] RAI [5];2014/01/05 00:38:11.6Z;2014/01/05 00:38:12.4Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190755,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.0Z;2014/01/05 00:38:10.9Z
BSCYAKRO4 TRIANIKRO Abis TP 63[_63];190756,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.1Z;2014/01/05 00:38:16.0Z
BSCYAKRO4 TRIANIKRO Abis TP 63[_63];190754,BSC-TRANS [101] RAI [5];2014/01/05 00:38:09.3Z;2014/01/05 00:38:09.5Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190752,BSC-TRANS [101] RAI [5];2014/01/05 00:38:08.0Z;2014/01/05 00:38:08.9Z
BSCBKE3 OUNANDIEKAHA Abis TP 120[_120];194057,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.0Z;2014/01/05 00:38:07.4Z
BSCBKE3 FRONAN Abis TP 148[_148];194058,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.1Z;2014/01/05 00:38:08.2Z
BSCABG5 BOUAPE Abis TP 176[_176];174289,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 AHOKOI Abis TP 73[_73];174286,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.4Z
BSCABG5 ANANGUIE_ADZOPE Abis TP 81[_81];174290,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 MOAPE Abis TP 83[_83];174287,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.2Z
BSCABG5 YAKASSE_OTTOBROU Abis TP 98[_98];174288,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.3Z


A voir également:

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 janv. 2014 à 10:30
hello
pourquoi cette ligne 8 dans file3 ? il n'y a pas de Albis TB 63 dans file1
BSCYAKRO4 TRIANIKRO Abis TP 63[_63];190756,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.1Z;2014/01/05 00:38:16.0Z

essayer
$ awk 'BEGIN {FS=","; while(getline < "FILE1")t[$2 " " $4]=$3; FS="["} {sub(" ", " " t[$1] " "); print}' FILE2
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190763,BSC-TRANS [101] RAI [5];2014/01/05 00:38:20.2Z;2014/01/05 00:38:21.1Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190762,BSC-TRANS [101] RAI [5];2014/01/05 00:38:18.2Z;2014/01/05 00:38:19.1Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190760,BSC-TRANS [101] RAI [5];2014/01/05 00:38:16.7Z;2014/01/05 00:38:17.4Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190759,BSC-TRANS [101] RAI [5];2014/01/05 00:38:15.1Z;2014/01/05 00:38:16.0Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190758,BSC-TRANS [101] RAI [5];2014/01/05 00:38:13.2Z;2014/01/05 00:38:14.0Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190757,BSC-TRANS [101] RAI [5];2014/01/05 00:38:11.6Z;2014/01/05 00:38:12.4Z
BSCYAKRO4 TRIANIKRO Abis TP 132[_132];190755,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.0Z;2014/01/05 00:38:10.9Z
BSCYAKRO4 Abis TP 63[_63];190756,BSC-TRANS [101] RAI [5];2014/01/05 00:38:10.1Z;2014/01/05 00:38:16.0Z
.....
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 janv. 2014 à 10:37
bonjour Dubcek

Mes meilleurs voeux pour l 'année 2014

c'est une erreur de copy and paste pour cette ligne

j'essaye le code et je te fais un feed back

merci
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 janv. 2014 à 16:51
bonsoir Dubcek

le code marche parfaitement , merci encore pour ton coup de main.

mais j'ai une dernière question .

pour le fichier FILE2 je veux vérifier le nombre entre crochet en gras avec celui qui est devant le lui.

si le nombre entre crochet correspond au nombre qui est devant : ne rien faire

si le nombre entre crochet est différent de celui qui est devant , le remplacer par le nombre entre crochet.
ci dessous un exemple.


Pour le nombre [_81] en gras à la 4eme ligne le 23 devant est différent de lui donc je le remplace par 81

BSCBKE3 Abis TP 148[_148];194058,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.1Z;2014/01/05 00:38:08.2Z
BSCABG5 Abis TP 176[_176];174289,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 73[_73];174286,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.4Z
BSCABG5 Abis TP 23[_81];174290,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 83[_83];174287,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.2Z
BSCABG5 Abis TP 98[_98];174288,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.3Z


résultat le 23 a été remplacé par 81.

BSCBKE3 Abis TP 148[_148];194058,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.1Z;2014/01/05 00:38:08.2Z
BSCABG5 Abis TP 176[_176];174289,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 73[_73];174286,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.4Z
BSCABG5 Abis TP 81[_81];174290,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 83[_83];174287,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.2Z
BSCABG5 Abis TP 98[_98];174288,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.3Z


Merci pour ton retour

cordialement
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 janv. 2014 à 09:31
je remplace systmatiquement le premier nombre par le 2ème, ça simplifie le code
$ awk '{split($4, a, "[[]|_|[]]"); sub("[0-9]+", a[3], $4); print}' FILE2
BSCBKE3 Abis TP 148[_148];194058,BSC-TRANS [101] RAI [5];2014/01/05 00:38:07.1Z;2014/01/05 00:38:08.2Z
BSCABG5 Abis TP 176[_176];174289,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 73[_73];174286,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.4Z
BSCABG5 Abis TP 81[_81];174290,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.2Z;2014/01/05 00:38:06.3Z
BSCABG5 Abis TP 83[_83];174287,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.2Z
BSCABG5 Abis TP 98[_98];174288,BSC-TRANS [101] RAI [5];2014/01/05 00:38:06.1Z;2014/01/05 00:38:06.3Z
$
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
8 janv. 2014 à 12:35
bonjour Dubcek

merci pour ton retour c'est une très bonne idée de ta part , j avoue que je n'y avais pas pensé.

Merci infiniment


cdlt.
0