1

我正在尝试在 vi 中运行此命令

:s/href="\//href="http:\/\/website.com\/folder\/subfolder\//g

但收到此错误E486: Pattern not found: href="\/

我究竟做错了什么?

4

3 回答 3

2

这个错误几乎就是它所说的。vi 在您的文件中没有找到任何模式href="/(忽略转义)。

有时,如果您的搜索有很多斜杠,则使用除搜索分隔符之外的其他内容会更容易/,因此您无需将它们全部转义。尝试将/分隔符替换为#,如下所示:

s#href="/#href="http://website.com/folder/subfolder/#g

那么也许你可以更容易地看到你的模式有什么问题:

于 2013-08-10T22:05:58.380 回答
0

因为有很多 '/' 字符,请尝试使用另一个分隔符,例如 ',':

:s,some/pattern/with/slashes,new/string,g
于 2013-08-10T22:08:19.220 回答
0

另一个注意事项。这种替代对我有用。只是复制和粘贴。您是否在尝试执行替换的同一行?“g”在您所在的线路上是全局的。如果您需要对文件执行搜索和替换,请使用 :%s/

于 2013-08-10T22:12:14.210 回答