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

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

Re: [shell-script] Case com AWK


From: jimmy
Subject: Re: [shell-script] Case com AWK
Date: Tue, 23 Aug 2011 19:48:27 -0300
User-agent: mutt-ng/devel-r804 (Linux)

On Tue, Aug 23, 2011 at 06:18:58PM -0000, williamalves1975br wrote:
> 
> 
> Bem, precisei solucionar um problema aqui no trabalho, que consistia em
> monitorar um LOG em tempo real, diversar foram as tentativas até concluir que 
> o
> SED e AWK seria a melhor solução, problemas sempre existirão e pesoas
> interessadas em resolver também, só que é em menor quantidade.
> 
> Onde após a tratativa do log, seria necessário utilizar com "Case", mas não 
> com
> o while, until ou for da maneira que estava acostumado a pensar e resolver, e
> sim dentro do awk.
> 
> Segue resultado após algumas pesquisas, poderá ser útil.
> 
> echo 1 2 3 4 5 6 7 | tr ' ' '\n' | awk '
> $1 ~ "^7" {print $0, ("setimo ciclo")}
> $1 ~ "^6" {print $0, ("sexto ciclo")}
> $1 ~ "^5" {print $0, ("quinto ciclo")}
> $1 ~ "^4" {print $0, ("quarto ciclo")}
> $1 ~ "^3" {print $0, ("terceiro ciclo")}
> $1 ~ "^2" {print $0, ("segundo ciclo")}
> $1 ~ "^1" {print $0, ("primeiro ciclo")}
> '

Você pode resolver esse problema com um array, uma menor quantidade de
perguntas e sem usar regexps:

BEGIN {
  split("primeiro \
         segundo \
         terceiro \
         quarto \
         quinto \
         sexto \
         setimo", ciclo);
}
{
  print $0, ciclo[ substr($1, 1,1 ) ], "ciclo";
}

Mas isso avaliando apenas esse exemplo em específico.

[]'s

-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com


reply via email to

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