Forum Programmation.perl Identifier le caractère qui suit un "_" et le déplacer ou remplacer

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
30
mar.
2018

Bonjour à tous !

Nouveau en Perl, je rencontre une petite difficulté. Dans un fichier texte, je voudrais faire la modification suivante :

Lorsqu'en lisant le fichier lignes par lignes je tombe sur un underscore ("") je voudrais faire une boucle permettant d'analyser le caractère qui se situe à droite du "". Si c'est une lettre, le déplacer sur la position où se trouvait l'underscore en laissant un espace à l'ancienne place de cette lettre. Si c'est un chiffre, simplement remplacer cet underscore par un espace.

Petit exemple, je voudrais que :
H_1 CU_71
me donne :
H 1 CU 71

Connaissez-vous une fonction permettant d'analyser le type de caractère se trouvant à la droite d'un autre ?

Merci d'avance !

  • # Regex

    Posté par  (site web personnel) . Évalué à 2.

    C'est un boulot d'expression rationnelle. Un truc trivial en 1 ligne. C'est pas un exo à faire ton truc ?

    Voir par exemple search and replace http://perldoc.perl.org/perlrequick.html

    Opérateur s///

  • # Avec sed

    Posté par  . Évalué à 0. Dernière modification le 31 mars 2018 à 09:18.

    Bonjour

    sed 's/_\([a-Z]\)/\1 /g;s/_\([0-9]\)/ \1/g' <<< "H_1 CU_71 H_A CU_v1"
    H 1 CU 71 HA  CUv 1

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.