我正在尝试一些测试,如下所示的shell脚本:
line="100:xx"
echo "$line" | grep -Po \\d+
结果:100
但是,
line="100:xx"
echo `echo "$line" | grep -Po \\d+`
结果为空
为什么呢?
$ echo `echo "$line" | grep -Po \\d+ | cat`
$ echo `echo "$line" | grep -Po \\\d+`
100
话虽如此,只需引用正则表达式即可
$ echo `echo "$line" | grep -Po '\d+'`
100
你也可以这样做:
echo $(echo "$line" | grep -Po \\d+)
echo "$line"
显示的值正确吗?那line="100:xx" echo \
echo "$line" | grep -Po \d+`` 呢? - filype$()
,它们很糟糕。 - user4453924echo \
echo "$line" | grep -Po \\d+`或者
echo `echo "$line" | grep -Po '\d+'``(但要切换到“$()”,反引号已经过时了)。 - Biffen