linux sed e lm sensors

0

Estou usando o seguinte

while true; do sensors | grep 'Core 1'| sed -r 's/^.*: +(.*) +[(].*$//' >> lmdata.txt; sleep 300;  done

para formatar

Core 1:       +68.0°C  (crit = +100.0°C)

para

+68.0'C

como posso alterar o comando sed para obter apenas a temp ie

68

obrigado por qualquer ajuda

    
por vigilance wx 11.04.2018 / 01:40

3 respostas

2

Usando sed :

sensors|sed -nE '/Core 1:/s/[^+]*\+([[:digit:]]+).*//p'

Em linguagem simples, isso poderia dizer:

Usando sed no modo não ecoado com expressões regulares estendidas:

  • on line matching Núcleo 1:
  • pesquise por ...
  • algo diferente de um +
  • então um +
  • depois salve mais de 1 dígito
  • , em seguida, corresponde ao final da linha
  • substitua por ...
  • o primeiro padrão salvo
  • e imprima o resultado
por 11.04.2018 / 02:49
1

Você deve ser capaz de atualizar a porção sed do seu comando para isso sem reestruturar nada:

sed -r 's/^.*: +([[:digit:]]+).* +[(].*$//'
    
por 11.04.2018 / 02:48
0

Use grep com perl-regexp:

$ sensors|grep -oP "Core 1:\s*\+\K[0-9]+"
70
    
por 11.04.2018 / 01:46

Tags