[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Filtrar linhas no arquivo texto
From: |
Sergio Nery Simoes |
Subject: |
Re: [shell-script] Filtrar linhas no arquivo texto |
Date: |
Sat, 14 Jul 2007 13:01:18 -0300 |
Pessoal,
apenas por curiosidade sobre o desempenho, fiz uma comparação de tempo entre
as soluções propostas, com o sed, o cut e o awk.
A apesar da minha grande preferência pelo awk, após os resultados vou rever
meus conceitos sobre o cut (rs).
Os testes foram feitos com um arquivo de dois milhões de linhas em um P4
2.2GHz.
Em todos foi feito o redirecionamento para /dev/null e por isso não utilizei
a opção -i do sed.
Observem:
$ wc -l arq
2000000 arq
$ time sed 's/documento_//;s/.odt//' arq > /dev/null
real 0m14.492s
user 0m13.805s
sys 0m0.076s
$ time awk -F '[_.]' '{print $2}' arq > /dev/null
real 0m2.112s
user 0m2.020s
sys 0m0.044s
$ time cut -d '_' -f 2 arq | cut -d '.' -f 1 > /dev/null
real 0m0.944s
user 0m0.812s
sys 0m0.104s
reparem que o sed teve o pior desempenho ~14s, o awk não foi o melhor mais
teve um excelente resultado ~2s, sendo o cut o mais rápido ~1s, duas vezes
mais rápido que o awk e 14 vezes mais rapido que o sed.
O fato de alguns comando serem mais sofisticados (eg: processar ERs, etc),
podem torná-los mais lentos ao utilizarmos para operações simples.
Conclusão: se quisermos obter desempenho, devemos utilizar comandos mais
simples sempre que possível.
Att,
Sergio.
Em 06/07/07, Tiago Barcellos Peczenyj <address@hidden> escreveu:
>
> Bom, existem muitas formas:
>
> awk -F '[_.]' '{print $2}' arquivo
>
> ou
>
> cut -d '_' -f 2 arquivo | cut -d '.' -f 1
>
> []s Tiago
>
> On 7/6/07, Eduardo Lucas <address@hidden<eduardo.lucas%40orbisat.com.br>>
> wrote:
> >
> > Pessoal...
> > estou como as seguintes linhas do arquivo
> >
> > documento_0012526A.odt
> > documento_0035555A.odt
> > documento_0054443A.odt
> > documento_0022222A.odt
> > documento_0034344A.odt
> > documento_0055555A.odt
> >
> > preciso da saida em um arquivo dele assim dele assim:
> >
> > 0012526A
> > 0035555A
> > 0054443A
> > 0022222A
> > 0034344A
> > 0055555A
> >
> > como faço isto...
> > desde já grato
> >
> > Eduardo
> >
> >
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
- Filtrar linhas no arquivo texto, Eduardo Lucas, 2007/07/06
- Re: [shell-script] Filtrar linhas no arquivo texto, Leslie Watter, 2007/07/16
- Re: [shell-script] Filtrar linhas no arquivo texto, Julio C. Neves, 2007/07/16
- Re: [shell-script] Filtrar linhas no arquivo texto, Bruno Gunter Fricke, 2007/07/16
- Re: [shell-script] Filtrar linhas no arquivo texto, Sergio Nery Simoes, 2007/07/16
- Re: [shell-script] Filtrar linhas no arquivo texto, Eduardo Costa, 2007/07/16
- Re: [shell-script] Filtrar linhas no arquivo texto, Rafael Dutra, 2007/07/17