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. 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
    

    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