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