查找和替换以下字符串的正确转义是什么?
问题描述:
我尝试使用下面的说明查找和替换以下字符串的正确转义是什么?
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' {} \;
但是它不可能工作,因为转义字符有些问题。我做错了什么?
答
更改替换分隔符有很大帮助:
find . -type f -exec sed -i \
's!<BASE href="file://C:\\Users\\J\\Documents\\Personal\\J\\">!!g' {} \;
答
尝试这样的:
s/\<BASE href\="file:\/\/C:\\Users\\J\\Documents\\Personal\\J\\\"\>//g
或与具有相同相同的命令即, 代替sed -i
使用Perl尝试perl -pi
你的代码在这里工作,虽然 – perreal 2013-02-25 05:57:07
如果你不认为会有近似匹配,你可以用'替换棘手的字符。 ':'sed's/ // g''。这不太可能找到任何错误的匹配,但这是一个判断。你比我更了解你的数据。 –
2013-02-25 06:29:49