Subtitution de champ 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 - 2 mars 2014 à 09:25
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 3 mars 2014 à 09:32
Bonjour,

je possède le file1 et le file2 , je veux obtenir le 3ème fichier après taritement avec awk

File1
1,LAGOMA_1800-1,LAGOMA_1800
1,LAGOMA_1800-2,LAGOMA_1800
1,LAGOMA_1800-3,LAGOMA_1800
1,ORCHIDEE_1800-1,ORCHIDEE
1,ORCHIDEE_1800-2,ORCHIDEE
1,ORCHIDEE_1800-3,ORCHIDEE
1,BRIMBRESSO-1,BRIMBRESSO
1,BRIMBRESSO-2,BRIMBRESSO
1,BRIMBRESSO-3,BRIMBRESSO
1,ABADJIN-1,ABADJIN_1
1,ABADJIN-2,ABADJIN_1
1,ABADJIN-3,ABADJIN_1
1,LOKOUA_1800-1,LOKOUA_2
1,LOKOUA_1800-2,LOKOUA_2
1,LOKOUA_1800-3,LOKOUA_2
20,BERVERLY-1,BERVERLY_1
20,BERVERLY-2,BERVERLY_1
20,BERVERLY-3,BERVERLY_1
20,BERVERLY_1800-1,BERVERLY_2
20,BERVERLY_1800-2,BERVERLY_2
20,BERVERLY_1800-3,BERVERLY_2
20,TOSSINOU-1,TOSSINOU_1
20,TOSSINOU-2,TOSSINOU_1
20,TOSSINOU-3,TOSSINOU_1
20,TOSSINOU_1800-1,TOSSINOU_2
20,TOSSINOU_1800-2,TOSSINOU_2
20,TOSSINOU_1800-3,TOSSINOU_2
20,SOL_BENI-1,SOL_BENI_1
20,SOL_BENI-2,SOL_BENI_1
20,SOL_BENI-3,SOL_BENI_1
20,SOL_BENI_1800-1,SOL_BENI_2
20,SOL_BENI_1800-2,SOL_BENI_2
20,SOL_BENI_1800-3,SOL_BENI_2
2,SOILIO_1800-3,SOILIO_2
2,MAMA-1,MAMA
2,MAMA-2,MAMA
2,MAMA-3,MAMA
2,KOBOUO-1,KOBOUO
2,KOBOUO-2,KOBOUO
2,KOBOUO-3,KOBOUO
2,LELEBREKOUA-1,LELEBREKOUA_1
2,LELEBREKOUA-2,LELEBREKOUA_1
2,LELEBREKOUA-3,LELEBREKOUA_1
2,DJOUKOUYO-1,DJOUKOUYO
2,DJOUKOUYO-2,DJOUKOUYO
2,DJOUKOUYO-3,DJOUKOUYO

File2


1,BSCSNT7
11,BSCDABOU
12,BSCYAKRO4
14,BSCLUM6
15,BSCSP7
16,BSCYAKRO5
17,BSCLUM5
19,BSCVIL10
2,BSCGAGNOA
20,BSCVIL11
22,BSCSNT9
25,BSCCAF11
26,BSCABG6
28,BSCLUM7
29,BSCBKE5
33,BSCCAF9
34,BSCSP6
35,BSCDALOA7
4,BSCMAN2
42,BSCVIL8
43,BSCVIL7
44,BSCYAKRO3
45,BSCLUM4
46,BSCBKE4
47,BSCABG4
48,BSCBKE3
5,BSCCAF10
50,BSCSNT6
51,BSCDALOA5
52,BSCSP5
53,BSCDALOA6
54,BSCSP4
55,BSCMAN
56,BSCKGO1
58,BSCVIL9
59,BSCCAF8
60,BSCSNT8
61,BSCKM4_5
62,BSCABG5
9,BSCDALOA9


file 3 resultat


BSCSNT7,LAGOMA_1800-1,LAGOMA_1800
BSCSNT7,LAGOMA_1800-2,LAGOMA_1800
BSCSNT7,LAGOMA_1800-3,LAGOMA_1800
BSCSNT7,ORCHIDEE_1800-1,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-2,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-3,ORCHIDEE
BSCSNT7,BRIMBRESSO-1,BRIMBRESSO
BSCSNT7,BRIMBRESSO-2,BRIMBRESSO
BSCSNT7,BRIMBRESSO-3,BRIMBRESSO
BSCSNT7,ABADJIN-1,ABADJIN_1
BSCSNT7,ABADJIN-2,ABADJIN_1
BSCSNT7,ABADJIN-3,ABADJIN_1
BSCSNT7,LOKOUA_1800-1,LOKOUA_2
BSCSNT7,LOKOUA_1800-2,LOKOUA_2
BSCSNT7,LOKOUA_1800-3,LOKOUA_2
BSCVIL11,BERVERLY-1,BERVERLY_1
BSCVIL11,BERVERLY-2,BERVERLY_1
BSCVIL11,BERVERLY-3,BERVERLY_1

merci pour votre aide

6 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
2 mars 2014 à 09:40
Salut,

Il serait bien de nous dire quelles sont les correspondances entre les deux fichiers qui permettent de créer le troisième, plutôt que de nous casser la tête à chercher, non ? ;-\

Merci.
1
Utilisateur anonyme
2 mars 2014 à 09:53
salut,

je plussoie zipe :
Il serait bien de nous dire quelles sont les correspondances entre les deux fichiers qui permettent de créer le troisième, plutôt que de nous casser la tête à chercher

apparemment, il s'agirait de réaliser une jointure => utiliser
join

voir:
info join
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
2 mars 2014 à 10:17
Bonjour

désolé les gars .

rechercher le premier champ du file2 dans le premier champ du file1 et le substituer par le champ2 du file2 et obtenir le file 3 ci-dessous.


resultat file 3

BSCSNT7,LAGOMA_1800-1,LAGOMA_1800
BSCSNT7,LAGOMA_1800-2,LAGOMA_1800
BSCSNT7,LAGOMA_1800-3,LAGOMA_1800
BSCSNT7,ORCHIDEE_1800-1,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-2,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-3,ORCHIDEE
BSCSNT7,BRIMBRESSO-1,BRIMBRESSO
BSCSNT7,BRIMBRESSO-2,BRIMBRESSO
BSCSNT7,BRIMBRESSO-3,BRIMBRESSO
BSCSNT7,ABADJIN-1,ABADJIN_1
BSCSNT7,ABADJIN-2,ABADJIN_1
BSCSNT7,ABADJIN-3,ABADJIN_1
BSCSNT7,LOKOUA_1800-1,LOKOUA_2
BSCSNT7,LOKOUA_1800-2,LOKOUA_2
BSCSNT7,LOKOUA_1800-3,LOKOUA_2
BSCVIL11,BERVERLY-1,BERVERLY_1
BSCVIL11,BERVERLY-2,BERVERLY_1
BSCVIL11,BERVERLY-3,BERVERLY_1
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
2 mars 2014 à 10:30
En gros c'est la même solution que dans ce post, suffit juste d'adapter un poil ;-\

Par contre pourquoi dans le résultat final, les champs correspondants à
20,BSCVIL11
ne font ressortir que 3 entrées, alors qu'il y en a 18 qui correspondent ?

20,BERVERLY-1,BERVERLY_1
20,BERVERLY-2,BERVERLY_1
20,BERVERLY-3,BERVERLY_1
20,BERVERLY_1800-1,BERVERLY_2
20,BERVERLY_1800-2,BERVERLY_2
20,BERVERLY_1800-3,BERVERLY_2
20,TOSSINOU-1,TOSSINOU_1
20,TOSSINOU-2,TOSSINOU_1
20,TOSSINOU-3,TOSSINOU_1
20,TOSSINOU_1800-1,TOSSINOU_2
20,TOSSINOU_1800-2,TOSSINOU_2
20,TOSSINOU_1800-3,TOSSINOU_2
20,SOL_BENI-1,SOL_BENI_1
20,SOL_BENI-2,SOL_BENI_1
20,SOL_BENI-3,SOL_BENI_1
20,SOL_BENI_1800-1,SOL_BENI_2
20,SOL_BENI_1800-2,SOL_BENI_2
20,SOL_BENI_1800-3,SOL_BENI_2
2,SOILIO_1800-3,SOILIO_2
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
2 mars 2014 à 10:48
bonjour

pas d'importance c'est moi même qui a réduit la liste.


cdlt.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
2 mars 2014 à 11:00
Alors il te suffit d'adapter la commande
join
donnée dans le post en lien dans mon précédent message et tu auras ton résultat.

N'oublie pas de venir donner la solution finale. Merci d'avance.
0

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

Posez votre question
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
2 mars 2014 à 12:33
hello
$ awk 'BEGIN {FS=OFS=","} NR==FNR {t[$1]=$2; next } {$1=t[$1]; print}' file2 file1
BSCSNT7,LAGOMA_1800-1,LAGOMA_1800
BSCSNT7,LAGOMA_1800-2,LAGOMA_1800
BSCSNT7,LAGOMA_1800-3,LAGOMA_1800
BSCSNT7,ORCHIDEE_1800-1,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-2,ORCHIDEE
BSCSNT7,ORCHIDEE_1800-3,ORCHIDEE
BSCSNT7,BRIMBRESSO-1,BRIMBRESSO
BSCSNT7,BRIMBRESSO-2,BRIMBRESSO
BSCSNT7,BRIMBRESSO-3,BRIMBRESSO
BSCSNT7,ABADJIN-1,ABADJIN_1
...
...
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
3 mars 2014 à 09:32
bonjour Dubcek

Merci pour ton retour ton code marche parfaitement.

Cdlt et bonne journée
0