文本處理工具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.www58058.com/32088

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

相關推薦

  • week3:cut,sort,grep等shell工具的應用及用戶,組管理類命令

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意,同一個用戶登錄多次只顯示一次即可    who | cut -d' ' -f1 | sort –u 2、取出最后登錄到當前系統的用戶相關信息    who | cut -d' ' -f1 | tail -1 | id 3、取出當…

    Linux干貨 2016-11-20
  • LVM2基本應用,擴展及縮減實現

    LVM(Logical Volume Manager,邏輯卷管理)是CentOS6中常用的磁盤管理的工具。常用于CentOS6上,提供了分區的動態擴展、縮減等功能。目前的常用版本為LVM2。 結構: 一、物理卷 LVM的物理卷以分區為單位。通常情況下,會以一個硬盤一個分區的情況下進行容量擴展。 在分區之后,要使用fisk命令來改變分區的類型,LVM的磁盤類型…

    Linux干貨 2016-02-25
  • 構建私有CA

    構建私有CA 我們采用openssl這個軟件來實現 所有首先我們來看下該軟件的配置文件 實現環境 centos 7.2 [root@redhat7 ~]# rpm -qc openssl  //可以看到該命令沒有任何輸出,我們可以思考該軟件包還存在其他的支包 [root@redhat7 ~…

    Linux干貨 2016-09-28
  • N22-第一周作業

    1、描述計算機的組成及其功能    組成:        硬件:            CPU:運算器、控制器、寄存器、緩存     &nb…

    Linux干貨 2016-08-15
  • Linux文件權限及ACL

    1、文件權限:          文件的權限主要針對三類對象進行定義:                owner:屬主,u表示  …

    Linux干貨 2016-08-05
  • 第九周作業

    1. 寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; # awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”…

    Linux干貨 2017-03-01
欧美性久久久久