comparando duas colunas

1

Eu quero imprimir OK se na coluna3 todos os campos estiverem OK na saída abaixo.

port    mcg clk  stat
 ------  -------  ----
 OK      EXTCLK1  OK  
 OK      CLK3B    OK  
 OK      CLK3A    OK  

Eu tentei assim

a='cat file2.txt | awk '{if ($1 == $3) {print "sync is OK";} else { print "sync is NOK";}}''
echo "$a" > file3.txt

aqui, se as condições forem satisfeitas três vezes, por isso, está imprimindo ok três vezes, mas quero imprimir apenas uma vez.

    
por siva kumar 29.08.2016 / 12:48

1 resposta

1

tente

awk 'BEGIN { ok=1 ; } 
      NR>2 { $3 != "OK" ; print "sync is NOK"; ok = 0 ; exit ; } 
      END { if ( ok ) print "sync is OK";} ' file2.txt > file3.txt

isto imprimirá um único NOK / OK. (note que o script pode ser um-lined).

    
por 29.08.2016 / 12:52