Bem, a abordagem mais simples seria simplesmente pegar a última linha:
sensors | grep temp1 | tail -n 1 | awk '{print int()}'
tail -n 1
imprime a última linha do arquivo.
ou
sensors | tac | grep -m 1 temp1 | awk '{print int()}'
tac
inverte sua entrada, então a primeira linha agora é a última. Isso significa que a primeira correspondência para temp1
é aquela com que você se importa e como grep -m 1
imprimirá apenas a primeira correspondência, é isso que você obterá.
Pessoalmente, como você já está usando awk
, eu faria a coisa toda em awk
:
sensors | awk '/temp1/{k=int()}END{print k}
A ideia aqui é que cada vez que uma linha corresponde a temp1
, k
é definido como int()
. No entanto, k
só é impresso no bloco END{}
, que é executado depois que o restante do arquivo foi processado, de modo que somente o último valor encontrado será impresso.