Script sh - sed : suppression pattern dans un fichier

Résolu/Fermé
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 22 nov. 2013 à 16:44
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 22 nov. 2013 à 16:54
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 ?
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
22 nov. 2013 à 16:49
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

0
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 139
Modifié par snow_frog le 22/11/2013 à 16:54
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
0