我正在尝试在Ubuntu 18.04.3 LTS上使用1.2.3
将类似1 : 2 : 3
的字符串解析为类似sed
的字符串。
我当前正在使用以下命令:
$> echo 1.2.3 | sed -r 's/(\d+)\.(\d+)\.(\d+)/\1 : \2 : \3/'
不幸的是,它输出1.2.3
而不是1 : 2 : 3
。
当我在Alpine 3.10下运行相同的命令时,它会按预期工作。
答案 0 :(得分:0)
您可以使用:
echo '1.2.3' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+)/\1 : \2 : \3/'
1 : 2 : 3
\d
是[[:digit:]]
的perl属性,在大多数sed
中不可用
您还可以使用:
sed -E 's/([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/\1 : \2 : \3/' <<< "1.2.3"