【发布时间】:2020-03-14 05:10:04
【问题描述】:
我正在尝试在 Ubuntu 18.04.3 LTS 上使用 sed 将看起来像 1.2.3 的字符串解析成看起来像 1 : 2 : 3 的字符串。
我目前正在使用命令:
$> echo 1.2.3 | sed -r 's/(\d+)\.(\d+)\.(\d+)/\1 : \2 : \3/'
不幸的是它输出1.2.3而不是1 : 2 : 3。
当我在 Alpine 3.10 下运行相同的命令时,它按预期工作。
【问题讨论】:
-
sed 不理解
+的意思是“一个或多个”。它也不理解\d的意思是数字。使用[0-9][0-9]*
标签: regex ubuntu sed capture-group