sed中的正则表达式

Dón*_*nal 10 regex sed

我需要使用sed将## XXX ##的所有出现转换为$ {XXX}.X可以是任何字母字符或'_'.我知道我需要使用类似的东西:

's/##/\${/g'
Run Code Online (Sandbox Code Playgroud)

但当然不会正常,因为它会将## FOO ##转换为$ {FOO $ {

任何接受者? - 唐

pos*_*ist 12

这是一个更好的替代正则表达式的镜头:

's/##\([a-zA-Z_]\+\)##/${\1}/g'
Run Code Online (Sandbox Code Playgroud)

或者,如果您假设正好三个字符:

's/##\([a-zA-Z_]\{3\}\)##/${\1}/g'
Run Code Online (Sandbox Code Playgroud)