如果以下输出是一个文件(http://paste.linuxthefish.net/4@raw),我如何获得“+45.0°C”?
我可以这样做来将它变成一行
sensors -A acpitz-virtual-0 > sen
grep temp1 ~/sen
但它上面仍然有很多无用的垃圾:
"temp1: +42.0°C (crit = +90.0°C)"
答案1
答案如下:例如,这些是文件内的文本
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}'
答案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}$"