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