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: [EMAIL PROTECTED]
>
>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???


------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a