Bonjour,

J'ai un fichier csv en entrée qui se présente comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
col1;col2
CC;ZZ
ZZ;BB
BB;SS
EE;QQ
GG;WW
WW;ZZ
Je souhaite avoir en sortie ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
col1;col2
CC;SS
EE;QQ
GG;ZZ
Je m'explique pour le premier résultat attendu. Les autres suivent le même raisonnement :
- je lis la première ligne et je note la valeur de la col1, ici CC
- toujours sur cette ligne, je prends le contenu de col2, ici ZZ
- je recherche la chaîne ZZ dans la suite du fichier et sur la première colonne
- je la trouve, le prends la valeur de la col2, ici BB
- je recherche la chaîne BB dans la suite du fichier et sur la première colonne
- je la trouve, le prends la valeur de la col2, ici SS
- je recherche la chaîne SS dans la suite du fichier et sur la première colonne
- je ne la trouve pas, j'affiche la valeur de col1 lue au tout début et la valeur de col2 de la dernière trouvaille, ici CC;SS

J'ai déjà posé cette question sur le forum SQL et j'ai eu une réponse mais comme j'ai aussi la possibilité d'utiliser le shell, je fais appel à votre expertise en shell/Awk/Sed.

Merci pour votre aide.