Regroupement de commandes sed

Salut,

question relativement superficielle, je souhaiterais pour des raisons de lisibilité, regrouper différentes commandes de substitution dans un même script. Commande originale :

SED "s/%%windir%%\\system32\\/%%SystemRoot%%\\System32\\/gi;s/%%windir%%\\/%%SystemRoot%%\\/gi;s/%%Homedrive%%\\/%%SystemDrive%%\\/gi;s/%%Temp%%\\/%%Temp%%\\/gi" 2.txt > 3.txt


Forme souhaitée :

SED {"s/%%windir%%\\system32\\/%%SystemRoot%%\\System32\\/gi
         s/%%windir%%\\/%%SystemRoot%%\\/gi
         s/%%Homedrive%%\\/%%SystemDrive%%\\/gi
         s/%%Temp%%\\/%%Temp%%\\/gi"} 2.txt > 3.txt


bon bien sur j'ai testé avec l'accolade et diverses combinaisons dans le genre, sans succès. Je voudrais juste pouvoir utiliser une ligne par motif comme ci-dessus. Je ne souhaite pas utiliser un script .sed externe.

Est-ce que c'est possible ?

Merci

6 réponses

  1. Modérateur
    Salut,
    sed "
    s/%%windir%%\\system32\\/%%SystemRoot%%\\System32\\/gi
    s/%%windir%%\\/%%SystemRoot%%\\/gi
    s/%%Homedrive%%\\/%%SystemDrive%%\\/gi
    s/%%Temp%%\\/%%Temp%%\\/gi
    "  2.txt > 3.txt
    ;-))
    1. Contributeur
      zut, ça n'a pas l'air de marcher sous windows, le prompt reste bloqué sur

      SED "


      pas mieux en ramenant la deuxième ligne après le premier guillemet. Tu aurais une idée ?
      1. Modérateur
        Mets un anti-slash avant de revenir à la ligne :
        sed "\
        s/%%windir%%\\system32\\/%%SystemRoot%%\\System32\\/gi\
        s/%%windir%%\\/%%SystemRoot%%\\/gi\
        s/%%Homedrive%%\\/%%SystemDrive%%\\/gi\
        s/%%Temp%%\\/%%Temp%%\\/gi\
        "  2.txt > 3.txt
        sans conviction ;-(
        1. Contributeur
          Malheureusement les lignes suivantes sont interprétées comme des commandes externes, et la première bloque sed qui n'a pas l'air de comprendre ce \ avec l'option s :(
          1. Modérateur
            A part te dire de migrer sous GNU/Linux, désolé je n'ai pas d'autres idées ;-(
            1. Contributeur
              bon... c'est pas dramatique non plus, juste une histoire d'aération de code.

              Ceci dit c'est possible sous linux ce qui est déjà une info intéressante.

              Merci