如何50.0
从字符串中grep 得到数字temp=50.0'C
在 JavaScript 中我可以使用表达式/temp=(.*?)'C/
来获取它。
但我无法让它在 grep 中运行。
答案1
您可以使用后视和前视启用 PCRE 后(通过-P
):
root@xxxxxxvlp03 ~ $ echo "temp=50.0'C" | grep -Po "(?<=temp\=).*(?=\'C)"
50.0
root@xxxxxxvlp03 ~ $
答案2
或者您可以使用sed
与 Javascript 示例非常相似的方式提取匹配的子组:
echo "temp=50.0'C" | sed "s/temp=\([^']*\)'C/\1/"
答案3
取决于您对字符串的了解。在这种情况下,您可以将所需结果定义为所有数字或点字符:
start cmd:> echo "temp=50.0'C" | grep -Eo '[0-9\.]+'
50.0
答案4
如果您只想提取 的数字部分50.0'C
,这可能看起来很有帮助,您也可以使用cut
.它可能看起来比使用正则表达式简单。
echo "temp=50.0'C" | cut -d= -f2 | cut -d\' -f1