OVH Cloud OVH Cloud

Sed, / et variable

11 réponses
Avatar
Remi Moyen
Salut,

J'ai un script, dans lequel j'ai une variable ($TOTO, disons), qui est un
chemin, donc qui contient plein de '/'. Je veux appliquer sed en utilisant
cette variable pour transformer une liste de chemins. Par exemple, je veux
rajouter $TOTO au début de chacun des chemins d'une liste.

Si je fais :

$ sed "s/^/$TOTO/" file

Ben ça plante. Forcément : $TOTO contient des /, donc quand je fais la
substitution, je me retrouve avec une expression du type :

$ sed "s/^//path/to/somewhere/" file

avec plein de '/' non-protégés.

Faudrait que je protège tous les / dans $TOTO, pour que ça marche. Ma
question, c'est comment faire ça facilement et proprement ?

Pour l'instant, la solution que j'ai trouvée, c'est de faire passer $TOTO
dans une première expression sed, qui remplace tous les '/' par '\/' (ce
que j'adore avec sed, c'est la vitesse à laquelle les expressions
grossissent... :-/ ). Ensuite, tout va bien.

Existe-il une solution plus propre pour automatiquement protéger tout le
contenu d'une variable ?
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

1 réponse

1 2
Avatar
Stephane Chazelas
2005-01-18, 17:09(+01), John Mackerel:
Remi Moyen wrote:

Ah ouais. J'avoue que j'utilise pas info (trop long, et surtout je suis
pas du tout habitué à son maniement, je passe plus de temps à me battre


http://freshmeat.net/projects/pinfo/


Qui n'a pas grand interet (pas de completion, pas de support des
menus, de l'index, editeur de ligne tres limité).

A la limite, je recommanderais plutot emacs ou xemacs.

--
Stéphane


1 2