Как я могу получить «+ 45,0 ° C», если следующий вывод был файл (http://paste.linuxthefish.net/4@raw)?
Я могу получить его в одну строку, выполнив
sensors -A acpitz-virtual-0 > sen
grep temp1 ~/sen
, но у него все еще есть куча бесполезного дерьма:
"temp1: +42.0°C (crit = +90.0°C)"
Вот ответ: например, это тексты внутри файла
acpitz-virtual-0
Adapter: Virtual device
temp1: +45.0°C (crit = +90.0°C)
temp2: +45.0°C (crit = +90.0°C)
Чтобы получить +45.0°C
для temp1, используйте эту команду:
grep temp1 < theFileWithTemp.txt | awk '{print $2}'
Вы можете использовать egrep (или grep -e) для использования регулярных выражений. С помощью .{7}
7 произвольных символов:
echo -e "temp1:\t+42.0°C (crit = +90.0°C)" | egrep -o "temp1:.{7}"
temp1: +42.
С помощью -o вы ограничиваете вывод своим соответствием. Чтобы отрезать только остальную часть строки:
echo -e "temp1:\t+42.0°C (crit = +90.0°C)" | egrep -o "temp1:.{7}" | egrep -o ".{5}$"