[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Filtrar linhas no arquivo texto
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Filtrar linhas no arquivo texto |
Date: |
Sun, 15 Jul 2007 02:52:03 -0300 |
O que vc mais vê por ai é gente matando mosquito com tiro de canhão,
fazendo:
$ echo "Pera Uva Maçã" | awk '{ print $2 }'
Se estiver dentro de variável, o melhor seria usar substituições de
parâmetros do tipo ${ ... }. Isso é shell puro e é muito mais veloz, mas
estando como uma cadeia de caracteres como no exemplo dado, seria muito
melhor fazer assim:
$ cut -f2 -d' ' <<< "Pera Uva Maçã"
Abraços a todos,
Julio
:wq
Em 14/07/07, Sergio Nery Simoes <address@hidden> escreveu:
>
> 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<tiago.peczenyj%40gmail.com>>
> 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>
> <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]
>
>
>
--
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq
[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
Re: [shell-script] Filtrar linhas no arquivo texto, Bruno Gunter Fricke, 2007/07/06