Traitement de chaine

Résolu/Fermé
Cheero - 4 juil. 2013 à 10:50
 Cheero - 4 juil. 2013 à 11:54
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
A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 juil. 2013 à 11:19
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
Je me disais bien qu'un awk saurait le faire mais je ne connais pas très bien cette commande.

Merci bien dubcek
0