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!
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!