• # On peut également utiliser des scripts

    Posté par (site web personnel) . En réponse au message [Terminal] Changements rapides avec sed. Évalué à 1.

    sed -f script ficher_entree >fichier_sortie

    Le script se présente comme une suite de commandes (une par ligne) :
    - # blablabla : commentaire
    - s/avant/apres/ : remplace UNE fois "avant" par "apres" (expressions régulières)
    - s/avant/apres/g : remplace toutes les occurences de "avant" par "apres" (expressions régulières)
    - ... (lire une bonne doc (man sed), y'a un bon paquet de fonctions!!!)

    Si vos expressions contiennent le caractère '/', il faut l'écrire '\/'. Ou plus simplement : "s@/usr/bin@/usr/sbin@g" => On peut utiliser n'importe quel caractère après le 's' pour délimiter les expressions.

    Syntaxe pour les expressions régulières UNIX -> Sed :
    .*?+ -> .*\?\+
    [...] -> [...]
    (...) -> \(...\)
    ^a$ -> ^a$
    Attention : le texte "truc[1].txt" s'écrit "truc\[1\]\.txt" !

    Exemple :
    --- script ---
    s@elefant\(s\)\?@éléphant1円@g
    --- txt ---
    J'ai croisé un elefant au supermarché avec ses pôtes elefants !
    --- sed -f script txt --
    J'ai croisé un éléphant au supermarché avec ses pôtes éléphants !
    ---
    Autres exemples : http://www.haypocalc.com/logiciel/regex_sed.php(...)

    Note: Attention, sous Windows les scripts doivent être sauvés dans le format UNIX sous peine de lire des "sed: file script line 1: Unknown option to 's' " !

    Haypo