parte II: Comandos Básicos
parte III: Variáveis
parte IV: if e Operadores de Comparação
parte V: Operações Aritméticas e Direcionamento da saída
parte VI: Loops(for & while), Funções e Considerações finais
- Loop while
O 'while' pode ser visto como uma série de testes condicionais 'if', pra entender melhor, basta traduzir do inglês (isso sempre ajuda): enquantoawk 'BEGIN { while(++var <= 10) print var}'
Ou seja, ela incrementa a 'var' (por padrão, no inicio 'var=0') e imprime, até 'var=10'.
Veja o seguinte e tente interpretar você mesmo o que acontece:
awk 'BEGIN { while(var++ <=10 ) print var }'
(Se não estiver com um Shell por perto, o resultado é: 1, 2, …, 11. Sim, até 11. Por que?)
- Loop for
É um while com mais recursos, pois podemos especificar a condição inicial, a final e realizar alguma operação a cada iteraçao.Aqui, a variável inicia em 1, só é válida enquanto for menor que 10 e é incrementada em 1 a cada iteração:
awk 'BEGIN {for(var=1 ; var <= 10 ; var++) print var }'
Realmente não há muito o que falar sobre if, while, for, do...provavelmente você já sabe, e a sintaxe é simplesmente a sintaxe da linguagem C.
- Funções
O AWK possui funções internas pra realizar conversão numérica, rodar comandos do sistema, mostrar hora, tamanho de uma string, funções matemáticas etc.
Por exemplo, vamos calcular o tamanho da frase que dá sentido ao universo:
awk 'BEGIN {print length("O vento do duende vem de roxo quando pisca na inconsciência do javali!")}'
Curiosidade: acentuação(',`,^,~) conta como caractere. Então tenha isso em mente caso precise da length.
A seguir, uma lista das funções mais comuns:
atan(x,y) arco-tangente de y/x, em radianos
cos(x) cosseno de x
sin(x) seno de x
exp() e^x
sqrt(x) raiz quadrada de x
index(strig,isso) procura na string 'string' a primeira ocorrencia da string 'isso'
int(x) menor inteiro próximo de x
length([string]) já usamos
rand() retorna um número entre 0 e 1
strftime(format) retorna o horario no mesmo formato da strftime(), do C
tolower(string) retorna a string minúscula
toupper(string) retorna a string maiúscula
system(command) executa um comando e retorna o exit code
- Mais informações
Código fonte do AWK:
ftp://ftp.gnu.org/pub/gnu/awk
AWK FAQ:
www.faqs.org/faqs/computer-lang/awk/faq/
Manuel completo do GNU AWK, gawk:
www.gnu.org/software/gawk/manual/gawk.html
Uma boa prática que deve ser mantida por quem costuma trabalhar com dados, textos e qualquer tipo informações, é a padronização.
De nada adianta você saber usar awk, sed, Perl, Python...se seus arquivos possuem informações desorganizadas.
Separe bem seus arquivos em pastas, com nomes dos arquivos bem expressivos, de preferência com conteúdo o mais simples e direto possível. Isso vai facilitar muito para, depois, você minar informações e agrupa-las.
Estudando por
Beginning Shell Scripting - Eric Foster-Johnson, John C. Welc, Micah Anderson - Wrox
Nenhum comentário:
Postar um comentário