【发布时间】:2019-04-14 07:36:22
【问题描述】:
在 JS 中,我可以在替换正则表达式中的子匹配时使用函数 String.prototype.replace()。例如:
var x = 'a1b2c3'.replace(/(\d+)/g, (num) => {
return num*num+1
})
console.log(x)
// 'a2b5c10'
我尝试过使用sed,但似乎无法在替换内部调用运算符$(())。
$ echo "a1b2c3" | sed 's/\([^0-9]*\)\([0-9]\)\([^0-9]*\)/\1$((\2*\2+1))\3/g'
# Output: a$((1*1+1))b$((2*2+1))c$((3*3+1))
bash中是否有类似的工具或功能,功能类似于JS的String.replace()?
【问题讨论】:
标签: javascript bash sed sh