Как использовать grep, чтобы найти следующие 7 символов после & ldquo; temp1 & rdquo ;?

Как я могу получить «+ 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)"
1
задан 31 December 2012 в 22:06

2 ответа

Вот ответ: например, это тексты внутри файла

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}'
0
ответ дан 31 December 2012 в 22:06

Вы можете использовать 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}$"
0
ответ дан 31 December 2012 в 22:06

Другие вопросы по тегам:

Похожие вопросы: