如何使用 grep 查找“temp1”后的 7 个字符?

如何使用 grep 查找“temp1”后的 7 个字符?

如果以下输出是一个文件(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°Ctemp1,请使用以下命令:

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}$"

相关内容