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

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

Re: Verificar se TODAS as palavras existem no texto


From: mop
Subject: Re: Verificar se TODAS as palavras existem no texto
Date: Fri, 02 May 2008 10:34:28 -0300

Acredito que esta não seja sua solução.
Deverão aparecer outras mais apropriadas.
Mas para ir brincando, eis uma abordagem muito questionável... :)

A função:
gb(){
 W=$*
 W=^${W// /$|^}$
 [ `tr ' ,.' '\n'|grep -E "$W"|sort -u|wc -l` -eq $# ]
}

O arquivo de teste:
-rw-r--r-- 1 xio xio 2388632 2008-05-02 10:05 twm.log

O resultado:
$ time cat twm.log|gb 12 13 F12;echo \$?=$?                          

real    0m0.081s
user    0m0.032s
sys     0m0.020s
$?=0
$ time cat twm.log|gb 12 13 F12 NAO;echo \$?=$?                      

real    0m0.070s
user    0m0.052s
sys     0m0.020s
$?=1
$ 

Optei pela coleta em stdin, mas tudo pode ser facilmente alterado.
Não sei se funcionaria em 100% dos casos e nem se deixei escapar algo.


------------------------------------------
>From: address@hidden
>
>Gostaria de saber como utilizar o grep para saber se um texto qualquer  
>possui *todas* os argumentos pesquisados. Vou dar um exemplo para ser  
>mais claro.
>Vamos supor que quero saber quais arquivos possuem as palavras maça,  
>uva e banana.
>Se eu der um grep "(maça|uva|banana)" vou obter as linhas que casam  
>com *qualquer* um dos parametros, mas o que eu desejo saber é se o  
>arquivo possui as 3 palavras ou não.
>Pensei em fazer vários grep's isolados, mas será que existe alguma  
>forma mais compacta???



reply via email to

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