|
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
[Prev in Thread] | Current Thread | [Next in Thread] |