Tiế*_*ạnh 3 bash shell grep nested
我正在尝试一些测试,在 shell 脚本中如下所示:
line="100:xx"
echo "$line" | grep -Po \\d+
Run Code Online (Sandbox Code Playgroud)
结果:100
但,
line="100:xx"
echo `echo "$line" | grep -Po \\d+`
Run Code Online (Sandbox Code Playgroud)
结果为空
为什么?
因为反引号允许像双引号字符串这样的扩展,所以你的反斜杠之一被吃得太快了:
$ echo `echo "$line" | grep -Po \\d+ | cat`
$ echo `echo "$line" | grep -Po \\\d+`
100
Run Code Online (Sandbox Code Playgroud)
话虽如此,只需引用正则表达式
$ echo `echo "$line" | grep -Po '\d+'`
100
Run Code Online (Sandbox Code Playgroud)