Linuxtrent: Re: problema con sed e varibili

  • From: Daniele Nicolodi <daniele@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sun, 14 Oct 2001 13:25:45 +0200

On Sun, Oct 14, 2001 at 01:17:48PM +0200, MaX wrote:

> ora con sed vorrei sostituire "ciao" con a variabile $HOME, quindi ne mio 
> caso vorrei ottenere : "/home/max/ 123"
> 
> bash-2.03$ cat A | sed s/ciao/\$HOME/g
> $HOME 123
> infatti ottengo questo "$HOME 123" al posto di "/home/max/ 123"
> Immagino che sed non possa espandere e variabili o perlomeno necessita di una 
> sintassi corretta.

Ti stai confondendo. Devi usare:

sed s/ciao/$HOME/g

Mettere \ prima di $ per la bash ha il senso di non trattare quello che
segue come variabile ma come semplice stringa. In sed avrebbe il senso
di eliminare il significato di $ come espressione regolare. Il punto
e` che prima di passare a seg gli argomenti la shell espande le variabili
(in questo caso sostituendo "$HOME" con "/home/max") quindi sed non "vede"
il simbolo $ ma soloil vero valore della variabile.

Ciao
-- 
Daniele
                    --- http://www.grinta.net ---
-- 
PROSSIMA ASSEMBLEA: venerdi` 19 ottobre 2001 20:30 a Madrano di Pergine.

Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: