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: 106.092 ]

Por: jarlisson moreira em 13/07/2012


Operações aritméticas e direcionamento da saída



Operações Aritméticas

Já vimos como comparar variáveis, agora veremos como mudá-las.

Isso pode ser feito através de adição, subtração, multiplicação, divisão e resto da divisão, inclusive com pontos flutuantes (float).

Por exemplo, para exibir o resultado de uma soma:

awk 'BEGIN {var=1 ; print var+var}'

O BEGIN é porque, por padrão, o AWK espera um endereço de arquivo pra operar nele. Nesse caso, como queremos apenas que o comando seja executado, sem a necessidade de um arquivo, usamos o BEGIN. O restante é intuitivo.

Podemos, assim como em diversas outras linguagens, usar:
  • var=var+var     'var' dobra de valor
  • var++              'var' recebe 'var' e depois é incrementada (var=var+1)
  • ++var              primeiro 'var' é incrementada, depois atribuída a ela própria incrementada
  • var1+=var2      é o mesmo que 'var1=var1+var2'

Pra entender melhor, faça e veja:

awk '
	BEGIN
	{
		var=1;
		var=var+var; print var;

		var=0;
		print var++;

		var=0;
		print ++var;

		var1=1;
		var2=2;
		print var1+=var2;
	}
    '


Direcionando a saída

Ao invés de obter os resultados na tela, podemos passar esse resultado para um arquivo, exatamente como o Shell faz.

Mas, aqui vai uma ressalva, o Shell usa '>' para redirecionar a saída, assim como o AWK usa '>' como operador 'maior que'. Então, muito cuidado.

Pra não ter erro, o nome do arquivo, que será a saída, estará entre aspas. Por exemplo:

awk 'BEGIN {print 1+1 > "resultado" }'

Abra o arquivo resultado:

cat resultado

Que terá a resposta 2.

Porém, se já houver um arquivo chamado 'resultado', o AWK irá sobrescrever o dito cujo e todas as informações que estavam anteriormente lá serão perdidas.

Por via das dúvidas, utilize sempre o comando ">>", que anexa o resultado ao fim do arquivo e caso este não exista, é criado.

akw 'BEGIN {print 2+2>> "resultado"}'

cat resultado
2
4


Página anterior     Próxima página

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

LibreOffice Math

Processos

Shell - Funções

Sed - Introdução

Pipelines (Canalizadores)

Leitura recomendada

Wordpress em 30 segundos com WP-CLI

Criando um banner em flash no Linux

Programando em Shell Script para iniciantes

Colorindo o Shell

Monitoramento automático de logs e alertas por e-mail - Fácil e explicado

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts