Como imprimo a linha se um par de colunas não corresponder a nenhuma das duas sequências

0

Eu consegui trabalhar como esperado ao observar uma coluna:

cat /tmp/inputfile | awk -F : '$12 !~ /100/ { print $6,$12,$13}'
cat /tmp/inputfile | awk -F : '$12 ~ /100/ { print $6,$12,$13}'
4726753 100 137

Mas quando eu tento dar o próximo passo no processo (veja 2 colunas e imprima se o par não é "100 137", ele imprime sob AMBAS condições. Como ele atende simultaneamente ambas as condições (combina e não combina) ), deve estar ignorando meu direito condicional?

cat /tmp/inputfile | awk -F : '$12,$13 ~ /100 137/ { print $6,$12,$13}'
4726753 100 137
cat /tmp/inputfile | awk -F : '$12,$13 !~ /100 137/ { print $6,$12,$13}'
4726753 100 137

Corrigir / entender esta é a etapa 1. O resultado final deve verificar "100 137" e "0 0" e imprimir somente se $ 12, $ 13 não forem nenhum desses pares.

    
por doneladio 10.05.2018 / 19:38

1 resposta

0

Se eu leio sua pergunta corretamente, você está procurando imprimir os campos 6, 12 e 13 se e somente se os campos 12 e 13 não forem (100, 137) ou (0, 0). Então:

awk -F: '! ( ( $12 == 0 && $13 == 0 ) || ( $12 == 100 && $13 == 137 ) ) { print $6, $12, $13 }' inputfile
    
por 10.05.2018 / 20:07