Estou utilizando uma máquina virtual com Ubuntu, a saída do comando top -bn1 | grep "CPU(s)"
era %CPU(s): 0,0 us, 2,3 sy, 0,0 ni, 97,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
Ao tentar rodar top -bn1 | grep "CPU(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/"
o terminal retornou o valor "0". Joguei toda essa saída no chat gpt, por algum motivo, no meu sistema a separação é por "," então tentei arrumar isso inserindo o seguinte comando: top -bn1 | grep "CPU(s)" | sed "s/.*, *\([0-9,]*\)%* id.*/\1/"
, mesmo assim, a saída era errada, números que nem existiam ali!
Por fim, o problema eram os números, na minha saída era "97,7 id", 2 dígitos antes da vírgula, o sed estava procurando apenas 1 dígito, o comando final ficou assim top -bn1 | grep "CPU(s)" | sed -E 's/.* ([0-9]+,[0-9]+) id.*/\1/'
, finalmente funcionou!
Resolvi postar aqui no fórum, pois alguém pode acabar enfrentando o mesmo problema!