No awk, como posso criar um valor booleano que eu possa alternar?

4

Em outras linguagens de programação, geralmente há um tipo bool ou boolean . Eu posso criar uma variável de tipo booleano e usar o operador not para alterná-lo. Eu posso alterná-lo muitas vezes e obter uma série de verdadeiras, falsas, verdadeiras, falsas ...

No awk não existe um tipo booleano. Apenas string vazia e o número 0 são considerados falsos. Todos os outros valores são verdadeiros. Nesse caso, o que devo fazer se eu quiser fazer a operação A na linha 1, 3, 5 ... e a operação B na linha 2, 4, 6 ... A tarefa será muito fácil se tivermos uma variável de tipo booleano e Eu posso simplesmente not .

    
por Ogrish Man 08.09.2016 / 10:42

1 resposta

6

veja Como o awk '! a [$ 0] ++' funciona?

basicamente use a=!a , isso irá negar a , transformando 0 para 1 e 1 para 0.

você pode testar com

ls | awk '{a=!a; if ( a ) printf "good %s\n",$0 ; else printf "bad\n";}'
    
por 08.09.2016 / 10:50

Tags