我有问题替换:
"count: $OFF_COUNT times"
有:
"count: " .. OFF_COUNT .. " times"
我试过了:
sed 's/\$\([A-Z0-9_]+\)\b/" .. \1 .. "/g'
但是,它没有任何效果。
只是一个不变的输出。
你几乎得到了正确的命令。唯一的问题是,在基本的sed
语法中,+
是一个文字(相当于[+]
)。引自sed
的Appendix A Extended regular expressions:
基本和扩展正则表达式之间的唯一区别在于几个字符的行为:
?
,+
,括号和大括号({}
)。 [...] 当使用扩展正则表达式时,c\+
成为c+
。它匹配一个或多个'c'。
要启用+
的通常含义,请写\+
sed 's/\$\([A-Z0-9_]\+\)\b/" .. \1 .. "/g'
或使用扩展的sed
语法
sed -E 's/\$([A-Z0-9_]+)\b/" .. \1 .. "/g'