Regex 使用sed删除{}个字符

Regex 使用sed删除{}个字符,regex,bash,sed,mv,Regex,Bash,Sed,Mv,问题是,我无法从HTML文件中的字符串中删除符号{和},在该文件中,字符串看起来像 Var @footer Set @footer = TransformXML(XML, GetPortfolioItem("Footer_EN_${et.mode}")) 我需要删除带有“newmode”文本变量的${et.mode}。 比如说 was ("Footer_EN_${et.mode}")) will be ("Footer_EN_my_current_mode")) 我设置了一个与下一个类似的变

问题是,我无法从HTML文件中的字符串中删除符号{和},在该文件中,字符串看起来像

Var @footer Set @footer = TransformXML(XML, GetPortfolioItem("Footer_EN_${et.mode}"))
我需要删除带有“newmode”文本变量的${et.mode}。 比如说

was ("Footer_EN_${et.mode}"))
will be ("Footer_EN_my_current_mode"))
我设置了一个与下一个类似的变量

echo -n "choose name: "
read newmode
path=/root/EN
newpath=tmp/EN_$newmode
default_text="${et.mode}"

sed -i "s/\/{et.mode}/\/$newmode/g" *.html
sed -i "s/$default_text/$newmode/g" *.html
但它不起作用

试试:

sed -i 's/\${et\.mode}/'"$newmode/g" *.html

您需要逐字匹配
$
字符,因此需要对其进行转义。这应该在单引号内完成。
$newmode
变量应该在双引号内,以便展开。

为什么在regexp中有
\/
?文件中没有反斜杠?@shoover这个问题和它有什么关系?他匹配的是一种编程语言,而不是HTML。像往常一样,在这种情况下,值得一提的是,
$newmode
不应该包含诸如符号、反斜杠等内容。