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

时间:2017-12-26 22:10:49

标签: linux shell command-line

这方面的新手,所以这里有什么不起作用:

ValueError

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

请尝试如下。更改' - > 并以反斜杠逃脱。

示例:

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