最后更新于 .

这里简单的给大家介绍一下Vim的查找替换,众所周知,Vim对正则表达式的支持是非常好的,对于程序员来说在分析大量数据的时候,用到Vim的这个功能无疑是件利器。

首先大家要明白vim正则里面的几个特殊含义:

^ 代表行首

$ 代表行尾

\d 代表数字

\D 代表非数字

[x,y,z]:代表各种条件选择

好的,那我们就出几个常用的题目做一下来试一下吧:

1.将以数字开头的行删除

%s/^\d.*$//igc :把这行置成空

%s/^\d.*$\n//igc :把这行直接删掉,包括换行符一起删掉,(注意是\n,而不是\r\n,因为这是针对linux平台,)下一行会到这一行的位置

2.将数字3或者4或者A开头的行删除

%s/^[3,4,A].*$//igc :把这行设置成空

3.

1 IP 202.114.1.1.23444

2 IP 202.114.1.2.wokao

3 IP 202.114.1.3.woai23444

要求最后变为

202.114.1.1

202.114.1.2

202.114.1.3

按照顺序执行如下即可:

%s/\d.*IP //igc

%s/\.\d*$//igc

%s/\.\D.*$//igc

这一次只是简单给大家说下Vim中正则表达式的用法,详细的以后再细说吧~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. levy

    levy on #

    Dante你好,请问示例命令最后的//igc标记是什么意思?

    Reply

    1. Dante

      Dante on #

      哦,呵呵,我的习惯……
      其实你只用/g就可以啦。
      /i是忽略大小写,/c是每次都要询问。

      Reply

  2. 可可火山

    可可火山 on #

    关于有些删除操作是不是直接用/d方便点呢?也不用考虑Unix还是Windows的换行符。
    :g/^\s*$/d : 删除所有空行

    Reply

    1. 可可火山

      可可火山 on #

      我多事了,博主后续文章有介绍删除。

      下午花了点时间看了vim类文章,受教了。

      Reply

      1. Dante

        Dante on #

        呵呵,没有没有~~

        Reply

  3. xiaoquan09

    xiaoquan09 on #

    网主
    请问你这个网站是怎么建起来的?
    步骤是什么?费用是多少?

    Reply

    1. miaomiao

      miaomiao on #

      用html写的,然后用。
      挂上域名,然后去工信部备案。
      最后就有了网站
      这种网站服务器的费用除了服务器费用顶多就是1000以内了

      Reply

  4. 石牛肚

    石牛肚 on #

    关于它下的替换,我有更好的方法:
    1 IP 202.114.1.1.23444

    2 IP 202.114.1.2.wokao

    3 IP 202.114.1.3.woai23444

    方法:
    :0,$s/^.*IP \(202\.114\.1\./d\)\..*/\1/gc

    Reply

    1. Dante

      Dante on #

      恩啊,要我现在写,也会按你这种方式写,哈哈,果然当时还是不熟啊

      Reply

  5. 爱智慧者

    爱智慧者 on #

    学习了。;;;;;;;;;;;;;;;;;;;;以下两行改写成1行:原文;;;;;;;;;;;;;;;;;;;;;;;;%s/.d*$//igc%s/.D.*$//igc;;;;;;;;;;;;;;;;;;;;以下两行改写成1行:改写:gVim有效;;;;;;;;;;;;;;;;;;;;;;;;%s/.w+$//g

    Reply

发表评论