【发布时间】:2015-04-27 09:22:26
【问题描述】:
我正在尝试一些测试,在下面的 shell 脚本中:
line="100:xx"
echo "$line" | grep -Po \\d+
结果:100
但是,
line="100:xx"
echo `echo "$line" | grep -Po \\d+`
结果为空
为什么?
【问题讨论】:
-
echo "$line"显示的值是否正确?怎么样:line="100:xx" echo `echo "$line" | grep -Po \\d+` -
因为您使用的是反引号而不是
$(),它们很烂。 -
它在反斜杠的转义中。尝试
echo `echo "$line" | grep -Po \\\\d+`或echo `echo "$line" | grep -Po '\\d+'`(但请切换到$(),反引号已被弃用很长时间。) -
谢谢大家,@Biffen 的工作方式对我来说是正确的