文本处理工具Sed及VIM的使用

1.文本处理工具Sed

  Stream Editor 行编辑器

blob.png                           图1-1 sed帮助手册

 用法:

     sed [option]…'script' file…

  常用选项:

         -n:不输出模式空间内容的自动打印

         -e:多点编辑

      -f file:从指定文件读取编辑脚本

         -r:支持扩展正则表达式

         -i:原处编辑

  地址定界:

     1) 不给地址

     2) 单地址

        # 指定的行

        /pattern/ 被此模式能匹配到的每一行

     3) 地址范围

        #,#  指定的两个数之间的行

        #,+# 从第一数开始的#行数

        /part1/,/part2/ part1和part2之间的行

        #,/part1/  从第一个数到part1之间的行

     4) 步进

        1~2 奇数行

        2~2 偶数行

 blob.png

              图1-2 sed命令使用

  编辑命令:

         d 删除模式空间匹配的行

         p 显示模式空间中的内容

     a \text 在行后追加文本,支持\n

     i \text 在行前追加文本,支持\n

     c \text 替换行为单行或多行文本 

      w file 保存模式匹配的行之指定的文件

      r file 读取指定文件的文本至模式空间中匹配到的行后

         = 为模式空间的行打印行号

         !匹配行取反

       s/// 查找替换,支持使用其他的分隔符 s@@@ 

          替换标记:

            g 行内全局替换

            p 显示替换成功的行

         w file 将替换成功的行保存至文件中 

blob.png 

       图1-2 sed命令使用

blob.png

            图1-3 sed命令使用

  高级编辑命令:

      h 把模式空间中的内容覆盖至保持空间中

      H 把模式空间中的内容追加到保持空间中

      g 把保持空间中的内容覆盖到模式空间中

      G 把保持空间中的内容追加到模式空间中

      x 把模式空间中的内容与保持空间调换

      n 读取匹配到的行的下一行覆盖至模式空间

      N 读取匹配到的行的下一行追加到模式空间

      d 删除模式空间中的行

      D 删除模式空间开端至\n的内容

 blob.png

                      图1-4 sed模式空间与保持空间


2 VIM编辑器

  2.1 VI即Visual Interface 文本编辑器

   VIM是VI的升级,提供了更易用,更强大的功能。 

blob.png

                     图2-1 vim帮助文档

   vim [option]…file…

          +#  打开文件后,直接让光标位于第#行的行首

     +/pattern  打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

       + file  直接打开file,光标位于最后一行

      -b file   以二进制打开文件

 -d file1 file2   比较多个文件

      -m file   只读方式打开

      ex file   直接进入ex模式

  blob.png

                     图2-2 vim命令使用

  2.2 三种主要模式

   命令模式(默认):移动光标,剪切/粘贴文本等

   插入(编辑)模式:修改文本

   扩展命令模式: 保存,退出等

         Esc键 退出当前模式

     Esc键 Esc键 总是返回命令模式

blob.png

                    图2-3 三种模式间的切换 

    模式之间的转换

       1) 命令模式 –> 插入模式

           i insert,在光标所在处输入

           I 在当前光标所在行的行首输入

           a append,在光标所在处的后面输入

           A 在当前光标所在行尾输入

           o 在当前光标所在行的下方打开一个新行

           O 在当前光标所在行的上方打开一个新行  

       2) 插入模式 –> 命令模式

            Esc

       3)命令模式 –> 扩展模式

            :

       4) 扩展模式 –> 命令模式

            Esc

       5)解锁与锁定

            Ctrl+s 锁定

            Ctrl+q 解锁

  

   扩展模式:

          w 写磁盘文件

         wq 写入并保存

          x 写入并推出

          q 退出

         q!不保存退出

       r file 读文件内容到当前文件 

       w file 将当前文件写入另一个文件

      !command 执行指令

     r!command 在文件中显示指令执行结果

blob.png

   图2-4 !command命令使用

blob.png

              图2-5 r!command命令使用

  命令模式光标跳转:

     h 左 l 右 j 下 k 上

     单词间跳转                  行首行尾跳转        

          w 下一个单词的词首           ^ 跳转至行首第一个非空白字符

          e 当前或下一个单词词尾        0 跳转至行首

          b 当前或下一个单词词首        $ 跳转至行尾 

     当前页跳转                  行间移动

          H 页首                   #G 跳转至由#指定的行

          M 页中间行                 G 最后一行

          L 页底                1G,gg 第一行

     句间移动                   段落间移动

         ): 下一句                  }: 下一段 

         (: 上一句                  {: 上一段

    字符编辑                    删除命令  

      x 删除光标处的字符                d 删除命令

     #x 删除光标处起始的#个字段           d$ 删除到行尾

     xp 交换光标与后面字符的位置          d^ 删除到行首

     ~ 转换大小写                    d0 删除到行首

  blob.png

                图2-6 文本操作

   地址定界

      :start_pos,end_pos

         # 具体第#行

       #,# 行起始到行结尾

       #,+# 从#行开始,加上右侧#的行数

         . 表示当前行

         $ 最后一行

         % 全文,相当于1,$

   查找并替换

      s/要查找的内容/替换为的内容/修饰符

      替换的内容,不能使用模式,但可以使用\1 \2…等向后引用符号;还可以使用&引用前面查找到的整个内容,分隔符也可以使用其他符号如s@@@…

      修饰符

        i 忽略大小写

        g 全局替换

       gc 全局替换,每次替换前询问

blob.png

                       图2-7 查找替换

   命令撤销

      u撤销最近操作

      #u可以撤销多次之前的更改

      U撤销光标落在这一行后所有此行的更改

      Ctrl -r 撤销"撤销"操作

      . 重复前一个操作

      n.重复前一个操作n次

  

  2.3 多窗口的使用

    多文件分割 

      vim -o|-O file1 file2

        -o 水平分割

        -O 垂直分割

        Ctrl+w,arrow 窗口间切换

    单文件分割

        Ctrl+w,s 水平分割

        Ctrl+w,v 垂直切割

        Ctrl+w,q 取消相邻窗口

        Ctrl+w,o 取消全部窗口

          wqall 退出

blob.png

                          图2-8 vim多窗口模式

  2.4定制VIM的工作特性

     配置文件:永久有效

        全局:/etc/vimrc

        个人:~/.vimrc

     1) 设置行号  2)设置成对匹配    3)设置自动缩进  4)高亮搜索

        set nu    set showmatch(sm)     set ai      set hlsearch

     5)设置语法高亮  6)忽略大小写   7)设置文件格式    8)设置文本宽度

        syntax on       set ic     fileformat=unix   set textwidth=65

blob.png

                           图2-9 定制vim工作特性




原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/32088

(0)
Stupid_LStupid_L
上一篇 2016-08-10 10:15
下一篇 2016-08-10

相关推荐

  • 马哥教育网络班21期-第七周课程练习

    第七周作业 1、创建一个10G分区,并格式为ext4文件系统; [root@qq ~]# fdisk /dev/sdb         #使用fdisk命令进行分区; Device contains neither&nb…

    Linux干货 2016-08-08
  • Bash的I/O重定向及管道

    每周更新的博客定时派送啦,本周与大家一起分享的是重定向和管道 首先了解一下 读入数据:Input 输出数据:Output 我们来看一下重定向:  >  覆盖重定向 上面图中 > 文件名     创建空文件 touch 文件名 创建空文件 这两种方法都可以创建一个新的文…

    2017-07-21
  • N25_第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登录到当前系统的用户的相关信息。 [root@aio ~]# who| …

    Linux干货 2016-12-19
  • N24_jerry 第十二周作业

    1、请描述一次完整的http请求处理过程; 简介 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准…

    Linux干货 2017-03-22
  • 一起学习吧:SDCC 2017即将在上海共话架构、数据和运维!

    2017活动家邀你一起学习吧!SDCC 2017在上海共话架构、数据和运维,还有两天!【召开时间为:3月17至3月19日】 在互联网大潮下,2017年的就业环境越发恶劣,技术人如何去适应技术变革和学习新技术,以及如何快速增强自身的技术实力成为亟需解决的问题。如果你在看完一本技术图书后还是疑惑不解,处于目前项目遇到困难时无人请教的尴尬境地,亦不清楚业界同行在使…

    2017-03-15
  • Linux网络配置基础二(网络模块与nmcli命令)

    Linux网络配置基础二 相关命令 lsmod命令 lsmod命令用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。第一列:表示模块的名称第二列:表示模块的大小第三列:表示…

    Linux干货 2016-09-09