• # simplifications...

    Posté par . En réponse au message truc bizarre avec un script. Évalué à 3.

    pourquoi tu fais toujours des recherches compliqués (ecrites tordues)

    alors que depuis le debut on essaie de te montrer qu'on peut simplifier

    ainsi ton

    $ sed -i -r -e '/^[ ]*#\|^$\|^\n*$/ !s/if_(..).*[a-zA-Z][0-9]*\.([a-z]).*[a-z]$ / IF \U1円\E.2円 /' mon_fichier


    pourrait s'ecrire

    $ sed -i -r -e '/^[ |#|\n|\t]*$/ !s/if_(..).*[a-zA-Z][0-9]*\.([a-z]).*[a-z]$ / IF \U1円\E.2円 /' mon_fichier

    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 :

    sed -r -e '/^[ |#|\n|\t]*$/d' -e 's/if_(..) [a-zA-Z][0-9]*\.([a-z]).*[a-z].*$/IF \U1円.\E2円/' fichier