Como usar o grep para encontrar os próximos 7 caracteres depois de “temp1”?

1

como posso obter "+ 45,0 ° C" se a seguinte saída for um arquivo (http://paste.linuxthefish.net/4@raw)?

Eu posso obtê-lo em uma linha fazendo

sensors -A acpitz-virtual-0 > sen
grep temp1 ~/sen

mas ainda tem uma porcaria inútil:

"temp1:        +42.0°C  (crit = +90.0°C)"
    
por user117882 31.12.2012 / 18:41

2 respostas

3

Aqui está a resposta: Por exemplo, estes são os textos dentro do arquivo

acpitz-virtual-0
Adapter: Virtual device
temp1:        +45.0°C  (crit = +90.0°C)
temp2:        +45.0°C  (crit = +90.0°C)

Para obter o +45.0°C de temp1, use este comando:

grep temp1 < theFileWithTemp.txt | awk '{print }'
    
por nickanor 31.12.2012 / 19:08
0

Você pode usar egrep (ou grep -e) para usar expressões regulares. Com .{7} 7 caracteres arbitrários:

echo -e "temp1:\t+42.0°C  (crit = +90.0°C)" | egrep -o "temp1:.{7}"
temp1:  +42.

Com -o você restringe a saída à sua correspondência. Para cortar apenas o resto da linha:

 echo -e "temp1:\t+42.0°C  (crit = +90.0°C)" | egrep -o "temp1:.{7}" | egrep -o ".{5}$"
    
por user unknown 31.12.2012 / 19:09