Shell: Remplacement chaine caractère

Résolu
Lales -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

Je cherche a modifier une chaine de caractère en shell. Cette chaine de caractère débute et finie par deux occurrences de %. Je voudrais remplacer %chaine% par "$chaine"

En gros, voila une ligne que j'ai:

%MOT1%/%MOT2% > %MOT3%MOT4

et voila ce que je souhaite:

"$MOT1"/"$MOT2" > "$MOT3"MOT4
Configuration: Windows XP
Firefox 3.0.6

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    [rep]$ cat plop
    %MOT1%/%MOT2% > %MOT3%MOT4
    
    [rep]$ sed 's/\(%\)\(.[^%]*\)\(%\)/"$\2"/g' plop
    "$MOT1"/"$MOT2" > "$MOT3"MOT4
    
    [rep]$
    ;-))
    1
    1. Lales
       
      Merci Jipicy

      J'avais fait un truc qui marchait mais qui avais une sale tête!!
      Ton instruction est beaucoup plus belle!!

      Merci encore

      A++
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Pour moi MOT4 est aussi une variable sinon ça ne rime pas avec la comparaison >
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Non, il faut tenir compte juste que de :
      Je voudrais remplacer %chaine% par "$chaine"

      et pas de :
      Cette chaine de caractère débute et finie par deux occurrences de %.
      qu'il faut traduire je pense par ;
      Cette chaine de caractère débute et finie par une occurrence de %.

      ;-))
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Salut,

        Ce n'était pas pour toi le message ;-))
        0
      2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        Re-

        Ce n'est pas forcément une comparaison, si ?

        PS. Mais il est vrai que le DOS c'est loin, très loin ;-(
        0
      3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Re,

        Il me semblais un peu longue ta regex ;-))
        $ echo '%MOT1%/%MOT2% > %MOT3%MOT4'| sed 's/\(%\)\(.[^%]*\)\(%\)/"$\2"/g'
        "$MOT1"/"$MOT2" > "$MOT3"MOT4
        $ echo '%MOT1%/%MOT2% > %MOT3%MOT4'| sed 's/%\([^%]*\)%/"$\1"/g'
        "$MOT1"/"$MOT2" > "$MOT3"MOT4
        

        0