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: fernando
Subject: Re: [shell-script] variavel no sed
Date: Wed, 11 Apr 2001 09:13:09 -0300 (BRST)
User-agent: IMP/PHP IMAP webmail program 2.2.3

É só substituir as aspas simples por aspas duplas. 

Citando Mauricio Vieira <address@hidden>:

> Como faco para 'escapar' a variavel dentro de um bloco sed?
> 
> sei que poderia usar cut e grep, mas quero usar o sed.
> 
> ### ...
> 
> function adiciona
> {
> while [ -z $USUARIO ];do
>         echo -n "Digite o login do usuario (8 caracteres): "
>         read USUARIO
> done;
> #Trunca para nao haver problema
> USUARIO=`echo "${USUARIO}" | cut -c -8`
> 
> EXISTENTE=` sed -n 's/(${USUARIO}).*/1/p' /etc/passwd `;
> 
> echo $EXISTENTE;
> if ! [ -z ${EXISTENTE} ]; then
>         echo "Este login ja esta sendo usado, favor verificar"
>         exit 1;
> else
>         echo $EXISTENTE;
> fi
> exit 2;
> ### ...
> 
> $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.
> 
> obrigado por qualquer ajuda.
> 
> []'s
> 
> Mauricio Vieira - Ciencia da Computacao UFBA
> ----------------------------------------------------------------------
> The connection between the language in which we think/program and the
> problems and solutions we can imagine is very close.  For this reason
> restricting language features with the intent of eliminating programmer
> errors is at best dangerous.
>                 -- Bjarne Stroustrup
> 
> 
> On Tue, 10 Apr 2001, # aurelio marinho jargas wrote:
> 
> :olá juari,
> :
> :@ 19/4, Juari Ritter Mueller:
> :
> :> Para arquivos no diretório corrente:
> :> for i in *; do mv "$i" "$(echo "$i"|tr [A-Z] [a-z])"; done
> :>
> :> Para arquivos cobrindo toda uma árvore de diretórios:
> :> i="blah"
> :> find . |
> :>   while [ -n "$i" ]; do
> :>     read i
> :>     mv "$i" "$(echo "$i"|tr [A-Z] [a-z])"
> :>   done
> :> PS: NAO TESTADO
> :
> :ao invés de fazer o find|while, você pode usar a mesma estrutura
> :do primeiro e apenas trocar o * pelo find . usando uma subshell:
> :
> :for i in `find . -type f` ; do mv "$i" "`echo $i|tr A-Z a-z`"; done
> :
> :
> :
> :* note que a sintaxe do tr é A-Z e a-z, SEM os colchetes.
> :  os colchetes são meros caracteres normais, e fazendo [A-Z] e [a-z]
> :  você troca [ por [ e ] por ] &:)
> :
> :
> :do man tr:
> :
> :        Faixas. A notação `m-n' expande para todos os caracteres de m a
> :        n, em ordem  ascen­ dente. m deve ser menos que n; caso
> :        contrário ocorrerá um erro. Por exemplo `0-9' é o mesmo que
> :        `0123456789'.  Ainda que tr não suporta a sintaxe do System V
> :        que  usa colchetes  para delimitar faixas, a alteração
> :        especificada neste formato funcionará como se os colchetes em
> :        expr1 correspondessem a colchetes idênticos em expr2.
> :
> :
> :--
> :s·:(·>(·×^a]×http://www.verde666.org×^[:wq
> :
> :
> :
> :Sair da lista: address@hidden
> :Banco Dados:   http://www.egroups.com/group/shell-script
> :
> :Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://docs.yahoo.com/info/terms/
> :
> :
> 
> 
> ------------------------ Yahoo! Groups Sponsor
> 
> Sair da lista: address@hidden
> Banco Dados:   http://www.egroups.com/group/shell-script 
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://docs.yahoo.com/info/terms/ 
> 
> 
> 

From (no email address) Wed Apr 11 06:51:27 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-7_1_1); 11 Apr 2001 13:51:26 -0000
Received: (qmail 29694 invoked from network); 11 Apr 2001 13:51:25 -0000
Received: from unknown (10.1.10.26) by l7.egroups.com with QMQP; 11 Apr 2001 
13:51:25 -0000
Received: from unknown (HELO postfix.conectiva.com.br) (200.250.58.156) by mta1 
with SMTP; 11 Apr 2001 13:51:24 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4]) by 
postfix.conectiva.com.br (Postfix) with SMTP id 0B33616B49 for 
<address@hidden>; Wed, 11 Apr 2001 10:51:20 -0300 (EST)
Received: (qmail 4137 invoked by uid 0); 11 Apr 2001 13:50:18 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 11 Apr 2001 13:50:18 -0000
Date: Wed, 11 Apr 2001 10:58:26 -0300 (EST)
X-Sender: verde@verde.distro.conectiva
To: address@hidden
Subject: Re: [shell-script] variavel no sed
In-Reply-To: <Pine.GSO.4.05.10104101913360.6017-100000@santiago>
Message-ID: <Pine.LNX.4.21.0104111057090.914-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>

@ 10/4, Henrique Limaverde Cabral de Lima:
> Mas se voce nao estiver muito interessado no sed, tem uma maneira mais
> facil de fazer:
> 
> EXISTE=`grep $USUARIO /etc/passwd`

blasfêmia!!!! &:)

EXISTE=`sed "/$USUARIO/!d" /etc/passwd`



-- 
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



reply via email to

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