Traitement de chaine

Résolu
Cheero -  
 Cheero -
Bonjour,


J'ai un fichier qui se présente comme suit
1258 02 APLONDH abc
3658 03 JHAJHDEZ abcdef


J'aimerais avoir le résultat suivant
1258-02-APLONDH-a
1258-02-APLONDH-b
1258-02-APLONDH-c
3658-03-JHAJHDEZ-a
3658-03-JHAJHDEZ-b
3658-03-JHAJHDEZ-c
3658-03-JHAJHDEZ-d
3658-03-JHAJHDEZ-e
3658-03-JHAJHDEZ-f


J'essaie de trouver une commande qui macherait pas mal le travail pour éviter d'avoir un script trop lourd. Car mon fichier fait environ 50Mo.

D'avance merci
Cheero

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ awk -v OFS="-" '{x=$NF; NF--; for(n=1; n<=length(x);)print $0, substr(x, n++, 1)}' fichier
1258-02-APLONDH-a
1258-02-APLONDH-b
1258-02-APLONDH-c
3658-03-JHAJHDEZ-a
3658-03-JHAJHDEZ-b
3658-03-JHAJHDEZ-c
3658-03-JHAJHDEZ-d
3658-03-JHAJHDEZ-e
3658-03-JHAJHDEZ-f
0
Cheero
 
Je me disais bien qu'un awk saurait le faire mais je ne connais pas très bien cette commande.

Merci bien dubcek
0