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

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

Re: [shell-script] Script um pouco complicado...


From: Thobias Salazar Trevisan
Subject: Re: [shell-script] Script um pouco complicado...
Date: Wed, 7 May 2003 18:18:24 -0300 (BRT)

ae frederico,

On Wed, 7 May 2003, Frederico Argolo wrote:

> > while read l; do
> >     T=$(sed -n "/\b$l-\?[0-9]/p" PacotesCD.txt)
> >     [ "$T" ] && cp $T /tmp
> > done < PacotesInstalados.txt
> Estou me familiarizando com o sed ainda, e nao entendi
> o seu:
> sed -n "/\b$l-\?[0-9]/p" PacotesCD.txt
>
> \b$1   : vc marcou uma borda da variavel lida.
> \b$1-  : seguido de -
> \b$1-\?: Aqui nao entendi?! Seguido de \ zero uma
> vez?? Pra que?!
> \b$1-\?[0-9]: seguido de digito.

hmm, olhando agora não precisa do \?.
O borda é para evitar que se o pacote for libc, ele pegue tanto o
libc como o glibc. Então garantimos que o que procuramos e começo
de palavra.
Isto pro lado esquerdo. no direito, que eu me lembre o que pode
ocorrer é glibc-devel-2... e glibc-2.

então temos que garantir que após o que procuramos (no caso glibc)
tem dígitos, pra não pegarmos o 'devel' também.

Então pra cercamos nossa procura, fizemos:

T=$(sed -n "/\b$l-[0-9]/p" PacotesCD.txt)

ou seja, borda na esquerda, nosso padrão de procura seguido de -
mais um número entre 0-9. assim, glibc-devel não entra, pois após
o padrão glibc tem - mas depois é letra e não dígito.

> > Aí é só testar T e fazer a cópia
>
> E no teste [ "$T" ] é verdadeiro caso a variavel tenha
> conteudo nao nulo?!

como fizemos.

T=$(sed -n "/\b$l-[0-9]/p" PacotesCD.txt)

Em T vai estar o nome do pacote (se existir), se não encontrou, a
variável vai ser nula. então.

$ [ "$X" ] && echo tem valor || echo nao tem valor
nao tem valor

$ X=babalooo
$ [ "$X" ] && echo tem valor || echo nao tem valor
tem valor

blz ?!

thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------



reply via email to

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