sed 中的匹配组

sed 中的匹配组

我正在尝试使用 sed 和捕获组concat(x,y)以编程方式用字符串替换字符串,其中和代表任意数字。xyxy

我认为以下方法可以解决问题:

echo "concat(3,2)" | sed 's!concat(\(\d\),\(\d\))!"\1\2"!'

我基本上是想捕获一组中的每个数字,并并排输出这两组。我不明白我从这个命令得到的输出:

concat(3,2)

为什么我的sed命令没有任何效果?我不知道这有多相关,但我使用的是 Mac。

多谢 !

答案1

默认情况下sed仅理解基本的正则表达式,因此您必须使用[0-9]而不是\d

$ echo "concat(3,2)" | sed 's!concat(\([0-9]\),\([0-9]\))!"\1\2"!'
"32"

相关内容