Traitement de chaine

Résolu
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

  1. Je me disais bien qu'un awk saurait le faire mais je ne connais pas très bien cette commande.

    Merci bien dubcek
    0
    1. Contributeur
      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