【问题标题】:How to search and replace in Vim/Linux if our searching/replacing pattern includes multiple forward slashes?如果我们的搜索/替换模式包含多个正斜杠,如何在 Vim/Linux 中搜索和替换?
【发布时间】:2021-01-18 22:43:05
【问题描述】:

我有 100K 行文件,每一行都包含日期 12/13/2019。我想将该日期替换为 2019 年 12 月 20 日。但是当我输入如下命令时:%s/12/13/2019/12/20/2019/g。它给出了一个找不到模式的错误。 日期格式为 (MM/DD/YYYY)

【问题讨论】:

标签: linux vim solaris putty


【解决方案1】:

替换由几个部分组成:

:<range>s/<search>/<replace>/<flags>

在这些部分之间,您将/ 作为默认分隔符。由于/&lt;search&gt; 部分与&lt;replace&gt; 部分分开,因此搜索模式中的任何/ 都将被解释为分隔符,从而导致不良结果。

一种解决方案是用反斜线转义斜线:

:%s/12\/13\/2019/12\/20\/2019/g

另一个(我最喜欢的)是使用另一种分隔符:

:%s@12/13/2019@12/20/2019@g

参考:

:help :s
:help pattern-delimiter

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 2011-05-04
    • 1970-01-01
    • 2011-11-09
    • 2015-02-15
    • 2012-12-25
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多