Bonjour,
j'ai un petit souci sur la commande sed, avec une variable:
voila, je souhaite dire a mon prog l endroit ou il se trouve, pour ensuite l
inclure dans mon prog.
le probleme, c est que quand je lance:
sed -e "s/$old/$new/g" monfichier >monnouveaufichier
sauf que comme ma variable $new est /home/applis, ma commande sed ne
comprend pas comment interpréter le deux\
pour le premier, je peux bien mettre dans mon script un \, mais pour le
second... comment faire...
pour info, mon prog fait :
pwd >fichier
new=`awk '{print $1}' fichier`
sed -e "s/$old/$new/g" fichier1`>fichierfinal
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
lhabert
"pascal" :
sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre à peu près n'importe quel autre caractère à la place. À toi d'en choisir un qui ne risque pas de se retrouve dans $old ou $new.
"pascal" :
sed -e "s/$old/$new/g" monfichier >monnouveaufichier
sauf que comme ma variable $new est /home/applis, ma commande sed ne
comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre à
peu près n'importe quel autre caractère à la place. À toi d'en choisir un
qui ne risque pas de se retrouve dans $old ou $new.
sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre à peu près n'importe quel autre caractère à la place. À toi d'en choisir un qui ne risque pas de se retrouve dans $old ou $new.
Vincent Bernat
OoO En cette fin de matinée radieuse du lundi 06 février 2006, vers 11:27, "pascal" disait:
Bonjour, j'ai un petit souci sur la commande sed, avec une variable: voila, je souhaite dire a mon prog l endroit ou il se trouve, pour ensuite l inclure dans mon prog. le probleme, c est que quand je lance: sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux pour le premier, je peux bien mettre dans mon script un , mais pour le second... comment faire... pour info, mon prog fait : pwd >fichier new=`awk '{print $1}' fichier` sed -e "s/$old/$new/g" fichier1`>fichierfinal
Tu peux remplacer les / par d'autres caractères : "s+$old+$new+g"
Bien sûr, il ne doit pas y avoir de + dans les variables.
Cette question n'est pas spécifique à Linux, aussi je mets le suivi sur le groupe fr.comp.os.unix -- I WILL NOT DEFAME NEW ORLEANS I WILL NOT DEFAME NEW ORLEANS I WILL NOT DEFAME NEW ORLEANS -+- Bart Simpson on chalkboard in episode 9F01
OoO En cette fin de matinée radieuse du lundi 06 février 2006, vers
11:27, "pascal" <pascal.detilleux@ac-versailles.fr> disait:
Bonjour,
j'ai un petit souci sur la commande sed, avec une variable:
voila, je souhaite dire a mon prog l endroit ou il se trouve, pour ensuite l
inclure dans mon prog.
le probleme, c est que quand je lance:
sed -e "s/$old/$new/g" monfichier >monnouveaufichier
sauf que comme ma variable $new est /home/applis, ma commande sed ne
comprend pas comment interpréter le deux
pour le premier, je peux bien mettre dans mon script un , mais pour le
second... comment faire...
pour info, mon prog fait :
pwd >fichier
new=`awk '{print $1}' fichier`
sed -e "s/$old/$new/g" fichier1`>fichierfinal
Tu peux remplacer les / par d'autres caractères :
"s+$old+$new+g"
Bien sûr, il ne doit pas y avoir de + dans les variables.
Cette question n'est pas spécifique à Linux, aussi je mets le suivi
sur le groupe fr.comp.os.unix
--
I WILL NOT DEFAME NEW ORLEANS
I WILL NOT DEFAME NEW ORLEANS
I WILL NOT DEFAME NEW ORLEANS
-+- Bart Simpson on chalkboard in episode 9F01
OoO En cette fin de matinée radieuse du lundi 06 février 2006, vers 11:27, "pascal" disait:
Bonjour, j'ai un petit souci sur la commande sed, avec une variable: voila, je souhaite dire a mon prog l endroit ou il se trouve, pour ensuite l inclure dans mon prog. le probleme, c est que quand je lance: sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux pour le premier, je peux bien mettre dans mon script un , mais pour le second... comment faire... pour info, mon prog fait : pwd >fichier new=`awk '{print $1}' fichier` sed -e "s/$old/$new/g" fichier1`>fichierfinal
Tu peux remplacer les / par d'autres caractères : "s+$old+$new+g"
Bien sûr, il ne doit pas y avoir de + dans les variables.
Cette question n'est pas spécifique à Linux, aussi je mets le suivi sur le groupe fr.comp.os.unix -- I WILL NOT DEFAME NEW ORLEANS I WILL NOT DEFAME NEW ORLEANS I WILL NOT DEFAME NEW ORLEANS -+- Bart Simpson on chalkboard in episode 9F01
Sébastien Monbrun aka TiChou
Dans le message <news:ds78gp$56s$, *Luc Habert* tapota sur f.c.o.l.configuration :
"pascal" :
sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre à peu près n'importe quel autre caractère à la place. À toi d'en choisir un qui ne risque pas de se retrouve dans $old ou $new.
Sinon, si on n'a aucune idée des caractères que l'on risque de rencontrer dans les variables, on peut, avant d'effectuer la substitution, modifier les variables en échappant les slashs.
sed 's/'"${old/////}"'/'"${new/////}"'/g'
-- Sébastien Monbrun aka TiChou
Dans le message <news:ds78gp$56s$1@nef.ens.fr>,
*Luc Habert* tapota sur f.c.o.l.configuration :
"pascal" :
sed -e "s/$old/$new/g" monfichier >monnouveaufichier
sauf que comme ma variable $new est /home/applis, ma commande sed ne
comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre
à peu près n'importe quel autre caractère à la place. À toi d'en choisir
un qui ne risque pas de se retrouve dans $old ou $new.
Sinon, si on n'a aucune idée des caractères que l'on risque de rencontrer
dans les variables, on peut, avant d'effectuer la substitution, modifier les
variables en échappant les slashs.
Dans le message <news:ds78gp$56s$, *Luc Habert* tapota sur f.c.o.l.configuration :
"pascal" :
sed -e "s/$old/$new/g" monfichier >monnouveaufichier sauf que comme ma variable $new est /home/applis, ma commande sed ne comprend pas comment interpréter le deux
Le « / » n'a rien de canonique, c'est juste une convention. Tu peux mettre à peu près n'importe quel autre caractère à la place. À toi d'en choisir un qui ne risque pas de se retrouve dans $old ou $new.
Sinon, si on n'a aucune idée des caractères que l'on risque de rencontrer dans les variables, on peut, avant d'effectuer la substitution, modifier les variables en échappant les slashs.