Sed -e avec une variable contenant des "&

Résolu
Bonjour à tous,

voilà j ai surmonté une premiere difficulté

help while avec awk

j' ai donc une variable FREQ = &28&29&....&40

plus loin dans mon script je dois remplacer un CA1 par FREQ

sed -e "s/CA1/$FREQ/g" file > tmp

le résultat est CA128CA129CA130CA131...CA140

Comment faire pour que sed accepte les "&" ?

Merci.

4 réponses

  1. Contributeur
    Salut Jipicy,

    Il y a aussi

    echo "éperluette" | sed 's/^é/es/'

    :P

    Dal
    1
    1. Modérateur
      Salut,

      Il te faut auparavant échapper tous les caractères "éperluette" (\&) dans ta variable :
      FRAQ=$(echo $FREQ | sed 's/\&/\\&/g')
      et ensuite utiliser cette nouvelle variable dans ta commande "sed" :
      [jp@MDK tmpfs]$ cat fich.txt
      mon CA1 ici
      
      [jp@MDK tmpfs]$ echo $FREQ
      &28&29&....&40
      
      [jp@MDK tmpfs]$ sed "s/CA1/$FREQ/" fich.txt
      mon CA128CA129CA1....CA140 ici
      
      [jp@MDK tmpfs]$ FRAQ=$(echo $FREQ | sed 's/\&/\\&/g')
      
      [jp@MDK tmpfs]$ echo $FRAQ
      \&28\&29\&....\&40
      
      [jp@MDK tmpfs]$ sed "s/CA1/$FRAQ/" fich.txt
      
      mon &28&29&....&40 ici
      
      [jp@MDK tmpfs]$
      ;-))
      0
      1. Modérateur
        Salut,

        <Hors Sujet>
        Attention tout les deux :-DDDDDD

        C'est https://langue-francaise.tv5monde.com/decouvrir/dictionnaire?Action=1&param=esperluette&che=1 et pas éperluette
        </Hors Sujet>

        ---------> Je sors maintenant :-))))

        lami20j
        0
        1. Modérateur
          @[Dal]Re,

          oups, je me suis trompé (on était de même avis)
          en ce cas il faut donner à jipicy une regex plus complexe :-))
          /(es)?p(e|i)rlou[eè]tt?e/


          lami20j
          0
      2. Modérateur
        Pfffffffffffffffffff z'avez rien d'autre à faire que de vous ficher de ma binette ??? ;-DD

        Alors rien que pour vous ...

        source Manon et re-source re-Manon ;-))

        Et si vous me croyez pas, demander à kilian, na !!!

        Bonne soirée à vous deux ;-)
        0