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).
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.
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).
Tags text-processing