[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Melhoramento do script
From: |
Cristiano |
Subject: |
Re: Melhoramento do script |
Date: |
Tue, 11 Jan 2011 20:44:48 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, "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?