我正在 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
关于bash - shell脚本中的嵌套命令和管道命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29891731/