shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] variavel no sed


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] variavel no sed
Date: Tue, 10 Apr 2001 19:29:35 -0300 (BRT)

Mauricio Vieira, @ 18:59:

> Como faco para 'escapar' a variavel dentro de um bloco sed?

[...]

> EXISTENTE=` sed -n 's/\(\${USUARIO}\).*/\1/p' /etc/passwd `;

[...]

> $EXISTENTE nao retorna nada. tentei $USUARIO mas tbm nao consegui(ele
> interpreta o $ como final de linha e a string USUARIO como a palavra da
> regexp). mas se coloco o nome do usuario diretamente no bloco (por exemplo
> EXISTENTE=` sed -n 's/\(mvieira\).*/\1/p' /etc/passwd `;) funciona.

A culpa aqui é do shell. Use aspas duplas (") ao invés de simples (') para
que o shell não ignore o que está dentro:

# teste=123
# echo '$teste'
$teste
# echo "$teste"
123
# echo 123456 | sed 's/$teste//'
123456
# echo 123456 | sed "s/$teste//"
456

ou você pode também simplesmente tirar fora as aspas no lugar da variável.
mais feio, mas pode ser feito:

# echo 123456 | sed 's/'$teste'//'
456

sed you later,
-- 
./eliphas.sh -levy | vim -x -R -b -T screen -c 'screen -r' -
"From a programmer's point of view, the user is a peripheral
that types when you issue a READ request."   -Peter Williams
 ============ ALL YOUR BASE ARE BELONG TO US! ============



reply via email to

[Prev in Thread] Current Thread [Next in Thread]