j'ai un petit souci :
lorsque le lance un sed dans le shell ça fonctionne
par contre lorque je fait dans le shell " sed -i -r -e '/^[ ]*#\|^$\|^\n*$/! s/if_(..).*[a-zA-Z][0-9]*\.([a-z]).*[a-z]$/IF \U\1\E.\2/' mon_fichier " ben ça marche pas
c'est une commande qu devrait me transformer la chaine "if_lt r65.x, d55" en un chaine "IF LT.x"
exemple qui marche
$ A='if_lt r4.x, c0.b\nif_gt r5.w, c0.b'
$ echo -e $A | sed -r -e '/^[ ]*#\|^$\|^\n*$/! s/if_(..).*[a-zA-Z][0-9]*\.([a-z]).*[a-z]$/IF \U\1\E.\2/'
IF LT.x
IF GT.w
exemple qui marche pas
$ nano mon_fichier
if_lt r19.x, c0.z; # 0, 001
$ sed -i -r -e '/^[ ]*#\|^$\|^\n*$/! s/if_(..).*[a-zA-Z][0-9]*\.([a-z]).*[a-z]$/IF \U\1\E.\2/' mon_fichier
$ nano mon_fichier
if_lt r19.x, c0.z; # 0, 001
# simplifications...
Posté par NeoX . Évalué à 3.
alors que depuis le debut on essaie de te montrer qu'on peut simplifier
ainsi ton
pourrait s'ecrire
histoire d'y voir plus clair dans la recherche suppression des lignes vides, lignes de commentaires, retour à la ligne et ligne de tabulations
ensuite ton expression ne trouve rien, donc ne remplace rien
en effet quand tu fais le test avec le echo, tu n'as pas mis de suite à ta variable ( ; #le commentaire) donc le test fonctionne
mais dans ton fichier de test, ben la ligne ne se finit pas apres la lettre.
typique tu lui dis que ta ligne finie par une lettre [a-z]$
alors qu'elle finit par lettre suivi du ; voire de commentaire
donc le motif devrait etre :
[^] # Re: simplifications...
Posté par eric . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.