AWK - Introdução

Uma breve descrição, usando exemplos, sobre o que é o AWK e para que serve: comandos básicos, variáveis, operadores de comparação e loops, operações aritméticas, funções e etc.

[ Hits: 99.403 ]

Por: jarlisson moreira em 13/07/2012


Loops (for & while), funções e considerações finais



Loop while

O while pode ser visto como uma série de testes condicionais if. Para entender melhor, basta traduzir do inglês (isso sempre ajuda): "enquanto".

awk '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ção.

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 para 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 ocorrência 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 horário 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:
AWK FAQ:
Manual completo do GNU AWK, gawk:
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 os 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 agrupá-las.

Todo mundo sabe a genialidade por trás da implementação do GNU/Linux, mas nem todo mundo lembra da ORGANIZAÇÃO desse sistema.

É linda! Exemplar!

Seja organizado e padronizado também. Não é bom, é essencial.

Artigo previamente publicado em:

Página anterior    

Páginas do artigo
   1. O que é e para que serve
   2. Comandos básicos
   3. Variáveis
   4. if e operadores de comparação
   5. Operações aritméticas e direcionamento da saída
   6. Loops (for & while), funções e considerações finais
Outros artigos deste autor

Processos

Sed - Introdução

Shell - Funções

Pipelines (Canalizadores)

LibreOffice Math

Leitura recomendada

Wordpress em 30 segundos com WP-CLI

Introduzindo prazerosamente aos poucos... o shell script

Introdução ao Shell Script

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Variáveis, if, else e unless em Ruby

  
Comentários
[1] Comentário enviado por albfneto em 13/07/2012 - 09:23h

Bom artigo, 10.

[2] Comentário enviado por removido em 13/07/2012 - 09:55h

Bom Artigo para consulta via net e para aprofundar o conhecimento.

Parabéns pelo trabalho feito.

[3] Comentário enviado por xerxeslins em 13/07/2012 - 10:16h

realmente uma excelente fonte de consulta!

Nota 10.

[4] Comentário enviado por eldermarco em 13/07/2012 - 10:40h

Muito bom! Excelente introdução a essa belíssima e muito útil linguagem de programação!

[5] Comentário enviado por ismael_farias em 13/07/2012 - 10:56h

Excelente artigo, vai para os favoritos. Parabéns.

[6] Comentário enviado por cesar em 13/07/2012 - 11:10h

Muito bom, excelente artigo!

[]'s

[7] Comentário enviado por danniel-lara em 14/07/2012 - 12:02h

Parabéns
muito bom o artigo

[8] Comentário enviado por removido em 16/07/2012 - 12:44h

grande trabalho rapaz! obrigado.

[9] Comentário enviado por sir.guil em 16/07/2012 - 15:05h

Muito bom.

[10] Comentário enviado por julio_hoffimann em 16/07/2012 - 17:42h

Parabéns Jarlisson!

Abraço!

[11] Comentário enviado por marcosnakamine em 03/03/2013 - 23:48h

Muito bom.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts