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

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

Re: [shell-script] Como fazer isso com awk sem ter que ler o arquivo vár


From: Alexandre Vieira Santos
Subject: Re: [shell-script] Como fazer isso com awk sem ter que ler o arquivo várias vezes ?
Date: Wed, 26 Oct 2005 15:09:40 -0200
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

Luiz Henrique wrote:

awk -F":" '{ print  $2  }' arquivo.log


rikekuda escreveu:

>Preciso ler o arquivo grande e de acordo com o conteudo preciso gerar
>outros arquivos. Por exemplo :
>
>ricardo:sp:sao paulo
>jose:rj:rio de janeiro
>pedro:rs:porto alegre
>
>Agora preciso pegar o valor da 2 coluna e gerar o arquivo sp.log,
>rj.log, etc...Como fazer isso no awk sem ter que ler o arquivo n
>vezes ? Só consegui fazer lendo o arquivo várias vezes o que é muito
>demorado..
>
>
>
>

Pode fazer dessa forma :

awk -f run.gawk data


====> fragmento de "data" < =====
admin:AC:Acre
administrator:AL:Alagoas
jack:AP:Amapá
marvin:AM:Amazonas
andres:BA:Bahia
barbara:CE:Ceará
adine:ES:Espírito Santo
test:GO:Goiás
guest:MA:Maranhão
db:MT:Mato Grosso
=========================

====> run.gawk <=============
BEGIN { FS = ":" }
$2 == "AC" { print $1":"$3 >> $2".log" }
$2 == "AL" { print $1":"$3 >> $2".log" }
$2 == "AP" { print $1":"$3 >> $2".log" }
$2 == "AM" { print $1":"$3 >> $2".log" }
$2 == "BA" { print $1":"$3 >> $2".log" }
$2 == "CE" { print $1":"$3 >> $2".log" }
$2 == "ES" { print $1":"$3 >> $2".log" }
$2 == "GO" { print $1":"$3 >> $2".log" }
$2 == "MA" { print $1":"$3 >> $2".log" }
$2 == "MT" { print $1":"$3 >> $2".log" }
$2 == "MS" { print $1":"$3 >> $2".log" }
$2 == "MG" { print $1":"$3 >> $2".log" }
$2 == "PA" { print $1":"$3 >> $2".log" }
$2 == "PB" { print $1":"$3 >> $2".log" }
$2 == "PR" { print $1":"$3 >> $2".log" }
$2 == "PE" { print $1":"$3 >> $2".log" }
$2 == "PI" { print $1":"$3 >> $2".log" }
$2 == "RJ" { print $1":"$3 >> $2".log" }
$2 == "RN" { print $1":"$3 >> $2".log" }
$2 == "RS" { print $1":"$3 >> $2".log" }
$2 == "RO" { print $1":"$3 >> $2".log" }
$2 == "RR" { print $1":"$3 >> $2".log" }
$2 == "SC" { print $1":"$3 >> $2".log" }
$2 == "SP" { print $1":"$3 >> $2".log" }
$2 == "SE" { print $1":"$3 >> $2".log" }
$2 == "TO" { print $1":"$3 >> $2".log" }
========================================

ok ?

Alexandre Vieira Santos





reply via email to

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