Ubuntu 18.04.3 LTS 上的 sed regexp 捕获组
sed regexp capture groups on Ubuntu 18.04.3 LTS
我正在尝试在 Ubuntu 18.04.3 LTS 上使用 sed
将看起来像 1.2.3
的字符串解析为看起来像 1 : 2 : 3
的字符串。
我目前正在使用命令:
$> echo 1.2.3 | sed -r 's/(\d+)\.(\d+)\.(\d+)/ : : /'
Unfo运行它输出 1.2.3
而不是 1 : 2 : 3
。
当我 运行 在 Alpine 3.10 下使用相同的命令时,它按预期工作。
您可以使用:
echo '1.2.3' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+)/ : : /'
1 : 2 : 3
\d
是 [[:digit:]]
的 perl 属性 并且在大多数 sed
中不可用
您还可以使用:
sed -E 's/([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/ : : /' <<< "1.2.3"
我正在尝试在 Ubuntu 18.04.3 LTS 上使用 sed
将看起来像 1.2.3
的字符串解析为看起来像 1 : 2 : 3
的字符串。
我目前正在使用命令:
$> echo 1.2.3 | sed -r 's/(\d+)\.(\d+)\.(\d+)/ : : /'
Unfo运行它输出 1.2.3
而不是 1 : 2 : 3
。
当我 运行 在 Alpine 3.10 下使用相同的命令时,它按预期工作。
您可以使用:
echo '1.2.3' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+)/ : : /'
1 : 2 : 3
\d
是 [[:digit:]]
的 perl 属性 并且在大多数 sed
您还可以使用:
sed -E 's/([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/ : : /' <<< "1.2.3"