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. 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 ;-)
    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
      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
    2. Contributeur
      Salut Jipicy,

      Il y a aussi

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

      :P

      Dal
      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]$
        ;-))