Linux查找和替换:如何在字符串中转义单引号?

问题描述 投票:-1回答:2

总计新的,所以这里有什么不起作用:

find . -type f -exec sed -i 's/\$_SESSION['valOne']"/\$valTwo,"/g' {} +

虽然它应该递归替换,但在它经历的所有目录中:

$_SESSION['valOne'] into just: $valTwo

我已经多次这样做了,但看起来引用对我来说太混乱了。这里的任何帮助都非常感谢。

linux shell command-line
2个回答
0
投票

请尝试如下。更改“ - >”并使用反斜杠进行转义。

例:

 find . -type f -exec sed -i "s/\$_SESSION\['valOne'\]/\$valTwo/g" {} +

1
投票

如果我理解你正在尝试做什么(文字替换)那么你需要单引号字符串,以便shell不试图解释其内容,然后使用'\''为字符串中的每个单引号并转义任何BRE元字符(即你的情况下[]):

find . -type f -exec sed -i 's/$_SESSION\['\''valOne'\''\]"/$valTwo,"/g' {} +
© www.soinside.com 2019 - 2024. All rights reserved.