Script sh - sed : suppression pattern dans un fichier

Résolu
Bonjour,

voilà mon problème:

je souhaite supprimer d'un fichier la/les lignes contenant un motif défini dans une variable
sed '/motif/d'
mais mon "motif" n'a pas l'air d'être pris en compte

voilà mon motif: -628.402;560.101


@home> cat fichier.txt
-640.152;637.308;0.0
-636.098;611.594;0.0
-632.181;585.858;0.0
-628.402;560.101;0.0
-624.763;534.325;0.0

@home> set MOTIF="-628.402;560.101"
@home> cat fichier.txt | sed '/$MOTIF/d'
-640.152;637.308;0.0
-636.098;611.594;0.0
-632.181;585.858;0.0
-628.402;560.101;0.0
-624.763;534.325;0.0

la suppresiion n'a pas fonctionnée...

j'ai essayé des accolades autour de ${MOTIF} et mainteant je seche (et oui déjà...

avez-vous une solution ?

2 réponses

  1. merci!

    il me manquait donc le double quote...
    le pire, 'est que j'ai du l'essayé, mais pas avec les accolades...


    sed "/${MOTIF}/d" brol

    sed '/'"${MOTIF}"'/d' brol
    1. Contributeur
      Salut,

      $ cat brol
      -640.152;637.308;0.0
      -636.098;611.594;0.0
      -632.181;585.858;0.0
      -628.402;560.101;0.0
      -624.763;534.325;0.0
      
      $ MOTIF="-628.402;560.101"
      
      $ sed "/${MOTIF}/d" brol 
      -640.152;637.308;0.0
      -636.098;611.594;0.0
      -632.181;585.858;0.0
      -624.763;534.325;0.0
      
      $ sed '/'"${MOTIF}"'/d' brol 
      -640.152;637.308;0.0
      -636.098;611.594;0.0
      -632.181;585.858;0.0
      -624.763;534.325;0.0