文本處理工具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 10:22

相關推薦

  • centos 7 修改sshd服務默認端口號

    由于最近sshd服務默認端口號22被匿名進行試探性的進行登入,為防止匿名用戶再次進行試探性的登入,將sshd服務的默認端口號進行修改。 環境:centos 7.3  xshell 思路:先將sshd的被指文件進行修改,把sshd服務的默認端口號修改為所需要的端口號,然后重啟sshd服務,發現重啟報錯。找其原因是應為selinux不允許自定義sshd…

    Linux干貨 2017-04-06
  • Linux編譯安裝

    Linux編譯安裝    Linux上真正可以執行的文件是二進制文件,這些可以執行的二進制文件是哪兒來的呢?首先,必須要寫程序的源代碼,然后,由編譯程序將程序的源代碼 編譯成二進制形式。源代碼是由程序員編寫的,使用特定的程序語言,如C,C++,Java,Python。但是機器看不懂這些語言,所以要使用編譯程序將這些語言編寫的源代碼編譯成機…

    Linux干貨 2016-08-24
  • 阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少

    服務器詳細配置 Project message System info LSB Version:      :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch Distributor ID: CentOS Description: &n…

    Linux干貨 2015-04-16
  • rsyslog將日志記錄于MySQL中

    數據庫服務器:CentOS7 192.168.119.159   日志:CentOS6 192.168.119.129     準備mysql數據庫 和 用戶賬戶 [root@localhost ~]# yum install mariadb-server   [root@localhost ~]# systemctl…

    2018-02-05
  • 冒泡算法,源碼安裝http,yum淺談

    生成10個隨機數,采用冒泡算法進行升序或降序排序 #!/bin/bash #author:maoxiong QQ:111111111 #verson:1.0  date:2016-08  #illustrate: declare -a array #create 10 randomnum for num in {0..9} do &nbs…

    Linux干貨 2016-08-26
  • 關于大型網站技術演進的思考(十)–網站靜態化處理—動靜整合方案(2)

    原文出處: 夏天的森林    上篇文章我簡要的介紹了下網站靜態化的演進過程,有朋友可能認為這些知識有點過于稀松平常了,而且網站靜態化的技術基點也不是那么高深和難以理解,因此它和時下日新月異的web前端技術相比,就顯得不倫不類了。其實當我打算寫本系列的之前我個人覺得web前端有一個點是很多人都知道重要,但是有常常低估它作用的,那就…

    2015-03-11
欧美性久久久久