• 【linux系列】vi模式下查找和替换


    一、查找

    1、查找命令

    /pattern<Enter> :向下查找pattern匹配字符串

    ?pattern<Enter> :向上查找匹配字符串

    在使用了查找命令之后,使用如下两个快捷键查找:

    n:按照同一方向继续查找

    N:按照反方向查找

    pattern是需要匹配的字符串,eg:

    /client_sn<Enter>  #查找client_sn

    / client_sn <Enter>  #查找client_sn单词

    除此之外,pattern还可以使用一些通配符,例如(/ ^ $ * .)

    二、替换

    1、:[range]s/pattern/string/[c,e,g,i]

    range指的是范围,1,7指从第一行到第七行,1,$指从第一行至最后一行,也就是整篇文章,也可以使用%代表,%是目前编辑的文章,#是前一次编辑的文章

    pattern 就是要被替换掉的字符串,可以用regexp所取代

    string 将pattern由string所取代

    c  confirm 每次替换前会询问

    e 不显示error

    g globe不询问整行替换

    i  ignore 不分大小写

    I  Ignore 大小写敏感

    2、基本替换

    :s/blue/green/ #替换当前行的第一个blue为green

    :s/blue/green/g  #替换当前行所有的blue为green

    :n,$s/blue/green  #替换第n行到最后一行中每一行的第一个blue为green

    :n,$s/blue/green/g  #替换第n行到最后一行中每一行的所有的blue为green

    3、删除文本中的^M

    缘由:对于换行,windows下用回车换行来表示,Linux是回车(0A)来表示,这样,将windows上文件拷贝到unix上的时候,总会有个^M,请使用命令过滤unix下windows的换行

    使用命令:cat filename 1|tr -d "^V^M" > newfile

    使用命令:sed -e "s/^V^M//" filename >outputfilename

    在以上两种方法中,^V和^M指的是Ctrl+V和Ctrl+M 必须进行手工输入,而不是进行粘贴

    在vi中处理:首先使用vi打开文件,然后按照ESC键,输入命令:

    :%s/^V^M//

    :%s/^M$//g

    如果上述方法无用,则使用

    tr -d "/r" <src > dest

    tr -d "/015" dest

    strings A>B

  • 相关阅读:
    Collection LinkedList
    java 浅拷贝和深拷贝
    Collection ArrayList
    Java 集合
    Activity、Fragment、Service、View生命周期
    Android 事件分发机制
    retrofit2.0
    Android 知识图谱
    设计模式-代理模式
    多线程-lock
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/6721419.html
Copyright © 2020-2023  润新知