[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Melhoramento do script
From: |
Jonathan Lessa |
Subject: |
Re: [shell-script] Re: Melhoramento do script |
Date: |
Wed, 12 Jan 2011 07:59:16 -0300 |
melhora um pouco se deixar de utilizar o cat
$ time cat /var/log/squid/access.log | awk '{print $NF}' | tr '\n' ' ' | awk
'{print $0}' > result1.txt
real 0m1.877s
user 0m2.777s
sys 0m0.696s
$ time awk '{print $NF}' /var/log/squid/access.log | tr '\n' ' ' | awk
'{print $0}' > result1.txt
real 0m1.543s
user 0m2.546s
sys 0m0.338s
$ time rev /var/log/squid/access.log | cut -f 1 -d " " | rev | tr '\n' ' ' >
result2.txt
real 0m7.726s
user 0m11.946s
sys 0m0.289s
Em 11 de janeiro de 2011 17:44, Cristiano <address@hidden> escreveu:
>
>
>
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> "M. Rodrigo Monteiro" <falecom@...> escreveu
> >
> > Caros,
> >
> > Tenho esse one-liner abaixo:
> >
> > echo -e "linha 01\nlinha 02" | awk '{print $NF}' | tr '\n' ' ' | awk
> > '{print $0}'
> >
> > Estou dando um exemplo genérico. O que eu queria fazer é o seguinte:
> > pegar em um arquivo o ultimo campo (número de campos variáveis) e
> > juntá-los em uma única linha separados por espaços em branco.
> > Existe alguma forma mais simples/rápida?
>
> Eu pensei em usar o rev.
>
> Algo assim:
>
> rev /var/log/squid/access.log | cut -f 1 -d " " | rev | tr '\n' ' '
>
> Mas não fez muita diferença:
>
> root@mga0-fwall-dsl:/tmp> time cat /var/log/squid/access.log | awk '{print
> $NF}' | tr '\n' ' ' | awk '{print $0}' > result1.txt
>
> real 0m4.569s
> user 0m1.940s
> sys 0m0.420s
> root@mga0-fwall-dsl:/tmp> time rev /var/log/squid/access.log | cut -f 1 -d
> " " | rev | tr '\n' ' ' > result2.txt
>
> real 0m3.997s
> user 0m3.132s
> sys 0m0.336s
>
> Meu access.log tem 536518 linhas e 71 megas.
>
> Só não entendi a razão do útimo awk. Parando no tr não resolve seu
> problema?
>
>
>
[As partes desta mensagem que não continham texto foram removidas]