我正试图找到\string1\并将其替换为\string2\(注意反斜杠)
我尝试了以下方法:

find ./ -type f -exec sed -i "s/\\STRING1\\/\\STRING2\\/g" {} \;

它不起作用,我得到了这个错误:sed:-e expression 1,char 21:未终止的's'命令
我搜索了网页,人们建议在我想搜索和/或替换的任何反斜杠上添加两个反斜杠。所以我试了一下:
find ./ -type f -exec sed -i "s/\\\STRING1\\\/\\\STRING2\\\/g" {} \;

这次我没有犯错误,但什么也没做。问题是什么?

最佳答案

使用单引号:

> echo "some text\STRING1\ and some more \STRING1\andeven more" | sed 's/\\STRING1\\/\\STRING2\\/g'
some text\STRING2\ and some more \STRING2\andeven more

关于linux - 用sed无法转义反斜杠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21198742/

10-13 07:31