[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! ============