Concaténation de champs de lignes consécutives avec condition
Résolu
RaySolu
Messages postés
2
Statut
Membre
-
RaySolu Messages postés 2 Statut Membre -
RaySolu Messages postés 2 Statut Membre -
Bonjour,
J'ai un fichier qui pour faire simple a le format suivant :
text1;opt1
text2;opt2
text3;opt3
text3;opt4
text4;opt5
text5;opt6
text5;opt7
text5;opt8
text6;opt9
Je souhaiterais le reformater ainsi :
text1;opt1
text2;opt2
text3;opt3-opt4
text4;opt5
text5;opt6-opt7-opt8
text6:opt9
En résume : si la ligne suivante possède la même valeur de 1er champ, ramener le 2ème champ sur la ligne courante avec un autre séparateur et supprimer la ligne suivante.
Possible d'avoir 2 ou 3 lignes consécutives ayant besoin de concaténation mais pas systématiquement comme dans l'exemple.
J'ai tenté d'utiliser sed et awk mais, petit joueur je n'y suis pas parvenu....
Peut-être aurez-vous une solution simple a me proposer ?
Cdt,
Ray Solu
J'ai un fichier qui pour faire simple a le format suivant :
text1;opt1
text2;opt2
text3;opt3
text3;opt4
text4;opt5
text5;opt6
text5;opt7
text5;opt8
text6;opt9
Je souhaiterais le reformater ainsi :
text1;opt1
text2;opt2
text3;opt3-opt4
text4;opt5
text5;opt6-opt7-opt8
text6:opt9
En résume : si la ligne suivante possède la même valeur de 1er champ, ramener le 2ème champ sur la ligne courante avec un autre séparateur et supprimer la ligne suivante.
Possible d'avoir 2 ou 3 lignes consécutives ayant besoin de concaténation mais pas systématiquement comme dans l'exemple.
J'ai tenté d'utiliser sed et awk mais, petit joueur je n'y suis pas parvenu....
Peut-être aurez-vous une solution simple a me proposer ?
Cdt,
Ray Solu
A voir également:
- Concaténation de champs de lignes consécutives avec condition
- Comment faire la somme de plusieurs cellules non consécutives sur excel - Guide
- Excel cellule couleur si condition texte - Guide
- Partage de photos en ligne - Guide
- Formulaire en ligne de meta - Guide
- Inverse de concatener excel ✓ - Forum Excel
3 réponses
Salut,
$ cat plop
text1;opt1
text2;opt2
text3;opt3
text3;opt4
text4;opt5
text5;opt6
text5;opt7
text5;opt8
text6;opt9
$ sed -n '$p;:z;N;/^\([^;]*\).*\n\1;/{s/\n[^;]*//;s/;/-/2;tz};P;D' plop
text1;opt1
text2;opt2
text3;opt3-opt4
text4;opt5
text5;opt6-opt7-opt8
text6;opt9