我正在尝试使用 sed 和捕获组concat(x,y)
以编程方式用字符串替换字符串,其中和代表任意数字。xy
x
y
我认为以下方法可以解决问题:
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"