如何“grep”返回结果的字符串

如何“grep”返回结果的字符串

如何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

相关内容