grep:如何获取两段文本之间的数字

时间:2015-11-11 08:01:15

标签: regex linux bash grep

我想grep我的cpu temp。

当我输入时: ipmi-sensors -s 2352 我明白了: 2352: CPU Temp (Temperature): 30.00 C (NA/81): [OK]

我想问一下"(温度)之间的数字:"和" C"

2 个答案:

答案 0 :(得分:2)

使用grep -oP

ipmi-sensors -s 2352 | grep -oP '\(Temperature\):\s*\K[\d.]+'
30.00

如果您的grep不支持-P选项,请使用此awk:

ipmi-sensors -s 2352 | awk -F '.*\\(Temperature\\): *| C .*' '{print $2}'
30.00

答案 1 :(得分:1)

也尝试这种方式

ipmi-sensors -s 2352 | awk -F'[: ]' '{print $7}'

sed

ipmi-sensors -s 2352 | sed 's/[^)]\+): \([^ ]\+\).*/\1/'

<强>输出:

30.00