erlug
[Top] [All Lists]

Re: [Erlug] uso di sed + varialbili

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] uso di sed + varialbili
From: Nando Santagata <nando@xxxxxxxxx>
Date: Wed, 26 Feb 2003 23:05:02 +0100
On Wed, Feb 26, 2003 at 08:03:51PM +0100, Plus wrote:
>   dato per scontato che:
>   cat pippo.txt |sed 's/vecchia_parola/nuovaparola' > pluto.txt
>   sostituisce vecchia_parola in nuovaparola e mi crea pluto.txt con
>   queste modifiche
>   Come faccio a passargli invece che nuovaparola $NUOVO
>   con $NUOVO=nuovaparola

sed -e "s/vecchia_parola/$NUOVO/" file.in >file.out

nota l'uso degli apici. Ovviamente con i doppi apici puoi avere qualche
problema per via che dei '$', che potrebbero venire presi per variabili
della shell, ma niente che un po' di escape non possa curare.

Mi spiego:

nanux:~/tmp>cat >p
vecchia_parola$
questa no
e neanche questa
^D
nanux:~/tmp>export NUOVO=nuovaparola
nanux:~/tmp>sed -e "s/vecchia_parola\\$/$NUOVO/" p 
nuovaparola
questa no
e neanche questa
nanux:~/tmp>

Nota l'uso del doppio backslash: uno solo tra doppi apici viene
considerato un escape, ma un dollaro escapato resta un dollaro.
Quindi due escape fanno un backslash, che in questo caso non fa vedere
il dollaro alla shell.

Ok, questa spiegazione fa lezzo, ma sono lesso e non posso farcela a
fare di meglio |-)

-- 
Rev. Nando Santagata: Telemastica & infornatica
Key fingerprint = 1054 9311 458D 4BAA E97B  F447 7CD4 54B5 0208 F815
finger nandos (at) mail (dot) ipers (dot) net   for my public key
"Home" page: http://home.ipers.net/ (Italian only)

<Prev in Thread] Current Thread [Next in Thread>