当包含撇号时如何用另一个字符串替换字符串?
How to replace string by another string when they include appostrophes?
sed -i 's/cfg._sections['styles']/t(cfg._sections['styles'])/g' *
我试过了",但没用。
我建议在正则表达式中转义特殊字符 [
和 ]
:
sed -i "s/cfg._sections\['styles'\]/t(cfg._sections\['styles'\])/g" *
如果您的输入包含 .
,那么也先转义 .
。
这可能对你有用 (GNU sed):
sed -i 's/cfg\._sections\['\''styles'\''\]/t(&)/g' file
用单引号将 sed 命令括起来。
正则表达式LHS的.
、[
、]
表示任意字符,字符类的开闭见here , 因此必须通过在 \
.
前面加上 escaped/quoted
习语 '\''
可用于插入 '
,这将关闭开头 '
并在 shell 级别引入 '
(再次escaped/quoted) 接着是另一个开口 '
.
正则表达式 RHS 中的 & 代表正则表达式 LHS 捕获的内容。
N.B。术语 LHS 和 RHS 分别代表左侧和右侧 (s/LHS/RHS/
)。
sed -i 's/cfg._sections['styles']/t(cfg._sections['styles'])/g' *
我试过了",但没用。
我建议在正则表达式中转义特殊字符 [
和 ]
:
sed -i "s/cfg._sections\['styles'\]/t(cfg._sections\['styles'\])/g" *
如果您的输入包含 .
,那么也先转义 .
。
这可能对你有用 (GNU sed):
sed -i 's/cfg\._sections\['\''styles'\''\]/t(&)/g' file
用单引号将 sed 命令括起来。
正则表达式LHS的.
、[
、]
表示任意字符,字符类的开闭见here , 因此必须通过在 \
.
习语 '\''
可用于插入 '
,这将关闭开头 '
并在 shell 级别引入 '
(再次escaped/quoted) 接着是另一个开口 '
.
正则表达式 RHS 中的 & 代表正则表达式 LHS 捕获的内容。
N.B。术语 LHS 和 RHS 分别代表左侧和右侧 (s/LHS/RHS/
)。