[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