2013-02-25 57 views
0

我尝试使用下面的说明查找和替换以下字符串的正确转义是什么?

http://www.brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html

为了什么也没有更换的

<BASE href="file://C:\Users\J\Documents\Personal\J\"> 

所有出现。我已经尝试过

find . -type f -exec sed -i 's/<BASE href=\"file:\/\/C:\\Users\\J\\Documents\\Personal\\J\\">//g' {} \; 

但是它不可能工作,因为转义字符有些问题。我做错了什么?

+0

你的代码在这里工作,虽然 – perreal 2013-02-25 05:57:07

+0

如果你不认为会有近似匹配,你可以用'替换棘手的字符。 ':'sed's/ // g''。这不太可能找到任何错误的匹配,但这是一个判断。你比我更了解你的数据。 – 2013-02-25 06:29:49

回答

3

更改替换分隔符有很大帮助:

find . -type f -exec sed -i \ 
    's!<BASE href="file://C:\\Users\\J\\Documents\\Personal\\J\\">!!g' {} \; 
0

尝试这样的:

s/\<BASE href\="file:\/\/C:\\Users\\J\\Documents\\Personal\\J\\\"\>//g 

或与具有相同相同的命令即, 代替sed -i使用Perl尝试perl -pi