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
- Operações Aritméticas
Já vimos como comparar variáveis, agora veremos como muda-las.Isso pode ser feito através de adição, subtração, multiplicaçao, 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 Shell faz.Mas, aqui vai uma ressalva, o Shell usa '>' pra 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
Estudando por
Beginning Shell Scripting - Eric Foster-Johnson, John C. Welc, Micah Anderson - Wrox
Nenhum comentário:
Postar um comentário