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