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

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

Re: [shell-script] grep e fgrep


From: Julio C. Neves
Subject: Re: [shell-script] grep e fgrep
Date: Sun, 21 Jul 2013 09:53:14 -0300

Fala Cesar,
esfriou pra chuchu aí no sul e vc partiu para testar shell, né? ;)

Seguinte Cesar, repare que vou pegar o teu exemplo e ampliá-lo:
$ time grep 456000 arquivo
456000

real 0m0.031s
user 0m0.004s
sys 0m0.016s
$ time fgrep 456000 arquivo
456000

real 0m0.035s
user 0m0.008s
sys 0m0.004s
$ time egrep 456000 arquivo
456000

real 0m0.032s
user 0m0.008s
sys 0m0.004s
$ time grep -F 456000 arquivo
456000

real 0m0.019s
user 0m0.016s
sys 0m0.004s

No meu 'mainframe' aqui (processador Lentium) os tempos foram um pouco
superiores aos seus, mas pode-se ver que o fgrep, o grep e o egrep tiveram
os tempo bem semelhantes, porém o grep -F foi mais rápido. Isso não
acontece no UNIX (compatível com o SVr4).

Eu já vi o fgrep e o egrep, em versões mais antigas do GNU grep, serem
scripts em Shell que chamavam respectivamente o grep -F e o grep -E,
passando os parâmetros recebidos (obviamente mais lentos).

Hj isso mudou, o man diz:
"three variant programs egrep, fgrep and rgrep are available.  egrep is the
same as grep -E.  fgrep is the same as grep -F.  rgrep is the same as grep
-r.  Direct invocation as either egrep or fgrep is deprecated, but is
provided to allow historical applications that rely on them to run
unmodified."

Daí tiramos algumas conclusões:
1 - Ele diz que (f|e)grep é o mesmo que grep -(F|E). Eu não creio, veja:
$ ls -l /bin/{"",f,e}grep
-rwxr-xr-x 1 root root 104440 2010-05-09 11:19 /bin/egrep
-rwxr-xr-x 1 root root  67500 2010-05-09 11:19 /bin/fgrep
-rwxr-xr-x 1 root root 104472 2010-05-09 11:19 /bin/grep

Se fosse assim, o tamanho do código dos 3 seria semelhante ou, pelo do
(f|e)grep seriam.

2 - Ele diz qeu o (f|e)grep estão sendo descontinuados, nisso eu acredito,
pq já existem implementações UNIX (como o AIX) que nem sabem do que se
trata o (e|f)grep.

Concluindo: tenho de ler o código para entender melhor isso, mas enquanto
 não o fizer, continuarei usando grep -(F|E).

Abcs,
Julio
*@juliobash
*



Em 20 de julho de 2013 15:00, César Vianna <address@hidden>escreveu:

> **
>
>
> Pessoal, para testar a diferença entre grep e fgrep criei um arquivo com
> 500.000 linhas com números em sequência.
>
> $ seq 500000 > arquivo
>
> Depois testei o tempo de pesquisa por qualquer número
>
> $ time grep 456000 arquivo
> 456000
>
> real 0m0.020s
> user 0m0.004s
> sys 0m0.016s
>
> $ time fgrep 456000 arq
> 456000
>
> real 0m0.021s
> user 0m0.008s
> sys 0m0.012s
>
> Dúvida: o tempo do fgrep não deveria ser menor do que do grep?
>
> --
> Abraço,
> César Vianna
> http://about.me/vianna
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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