8-8 處理文本工具sed及vim文本編輯工具

處理文本工具sed及vim文本編輯工具

Sed:

  sed是一種在線編輯器、行編輯器,一次處理一行內容。在處理時,把當前處理的行存儲在臨時緩沖區中,該緩沖區稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完畢后,把緩沖區的內容送到標準輸出;然后緊接著處理下一行,重復完成相同的操作,直到文件末尾;sed處理的整個過程中,對象文件中的內容沒有被改變,除非使用重定向來存儲處理后的結果。sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作過程。

   功能:數據的替換、刪除、新增等,這里的數據可以是一些關鍵字,也可以是一些特定的行。

語法結構:

   sed [OPTION]…{script}[input-file]…[actions]

      -n:靜默模式

      -e:多點編輯

      -f /PATH/TO/SCRIPT_FILE:從指定文件中讀取腳本并運行

      -r:支持擴展正則表達式

      -i: 直接修改源文件

Sed的地址定界

   #:表示數字,指定行

   $:最后一行

   #,#:從#行開始到#

   #,+#:從#行開始,到加#

   1~2:奇數行

   2~2:偶數行

編輯命令:

   d:刪除模式空間匹配的行

   p:顯示模式空間中的內容

   a \text:在行后面追加文本;支持使用\n 實現多行追加

   i \text:在行前面插入文本;支持使用\n 實現多行插入

   c \text:用text替換匹配到的行

   w /path/to/somefile:保存模式匹配的行至指定文件

   r /path/from/somefile:讀取指定文件的文本至模式空間中匹配到的行后合并

   =:為模式空間中的行打印行號

   !: 模式空間中匹配行取反處理

   s/regexp/replacement/:替換由regexp所匹配到的內容為replacement,對于替換有兩個后選項:g:全局替換

        i:不區分大小寫

        p:顯示替換成功的行

高級編輯命令

    h:把模式空間中的內容覆蓋至保持空間中

    H:把模式空間中的內容追加至保持空間中

    g:從保持空間取出數據覆蓋至模式空間

    G:從保持空間取出內容追加至模式空間

    x:  把模式空間中的內容與保持空間中的內容進行互換

    n:  讀取匹配到的行的下一行至模式空間

    N:追加匹配到的行的下一行至模式空間,追加在模式空間中原有內容的后面

    d:  刪除模式空間中的行

D :刪除多行模式空間中的首行

1. 在特定行號后插入一行
      要在第25行以后插入一行新的內容xiaoming(插入內容將變成第26行),寫法:
               # sed -i '25axiaoming' aaa.txt
               # sed -i '25a\xiaoming' aaa.txt       沒有特殊字符時,加與不加轉義符,效果都一樣
     要在第25行插入一行新的內容 /usr/local/php.ini,寫法:
                 # sed -i '25a/usr/local/php.ini' aaa.txt      需要加入轉義符

2. 徹底替換某一行內容
     要把第3行的內容徹底替換為xiaoming*,寫法:
      # sed -i "3s/.*/xiaoming */" /etc/ppp/chap-secrets

vim編輯器:

打開文件  # vim  [OPTION]… FILE…

       +#:  打開文件后,直接讓光標處于第# 行的行首

       +/ PATTERN :打開文件后,直接讓光標處于第一個被PATTERN 匹配到的行的行首

       vim + file  直接打開file, 光標在 最后一行

       vim -b file  二進制方式打開文件

       vim -d file1 file2… 比較多個文件

       vim -m file 只讀打開文件

  ex file 或 或 vim e 直接進入ex 模式

   如果該文件存在,文件被打開并顯示內容

   如果該文件不存在,當編輯后第一次存盤時創建它

 

 

vim :一個模式編輯器

  擊鍵行為是依賴于 vim的 的  的“模式”

  三種主要模式:

        命令模式(默認):移動光標,剪切/ 粘貼文本

        插入(編輯)模式:修改文本

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

  Esc鍵 退出當前模式

  EscEsc鍵 總是返回到命令模式

模式轉換

1. Esc鍵:從輸入模式轉換為編輯模式

2. 從編輯模式–>輸入模式,可使用:

       i:在光標所在處的前方轉換為輸入模式

           a:在光標所在處的后方轉換為輸入模式

           o:在光標所在處的下方新建一個空行并轉換為輸入模式

           I:在光標所在行的行首輸入

           A:在光標所在行的行尾輸入

           O:在光標所在行的上方新建一個空白行

3. 從編輯模式–>擴展模式:直接在窗口輸入冒號(:)即可在窗口的左下方顯示冒號

4. 從擴展模式–>編輯模式:敲擊Esc

5. 鎖定和解鎖:CTRL+s,Ctrl+q

 

 關閉文件

    擴展模式:

         :q  退出

         :q!  強制退出,丟棄做出的修改

         :wq  保存退出

         :x  保存退出

   命令模式

        ZZ:保存退出

        ZQ:不保存退出

擴展模式

   按“: ”進入Ex 模式

   創建一個命令提示符:, 處于底部的屏幕左側

       w  寫(存)磁盤文件

       wq  寫入并退出

       x  寫入并退出(不推薦)

       q 退出

       q!不存盤退出,即使更改都將丟失

       r filename  讀文件內容到當前文件中

       w filename 將當前文件內容寫入另一個文件

 

命令模式的光標跳轉

   字符間跳轉:h: l: j: k:

        #COMMAND :跳轉由# 指定的個數的字符;

   單詞間跳轉:

        w:下一個單詞的詞首

        e:當前或下一單詞的詞尾

        b:當前或前一個單詞的詞首

        #COMMAND:由# 指定一次跳轉的單詞數

   當前頁跳轉:

        H:頁首 M:頁中間行 L:頁底

   行首行尾跳轉:

        ^:跳轉至行首的第一個非空白字符;

        0:跳轉至行首

        $:跳轉至行尾

   行間移動:

        #G:直接跳轉至#

        G:最后一行

        1G, gg:第一行

   句間移動:

        ) :下一句     ( :上一句

   段落間移動:

        }:下一段      {:上一段

  

   Ctrl+f:向文件尾部翻一屏

   Ctrl+b:向文件首部翻一屏

   Ctrl+d:向文件尾部翻半屏

   Ctrl+u:向文件首部翻半屏

 

Vim的編輯命令

     x:刪除光標處的字符;

     #x:刪除光標處起始的# 個字符

     xp:交換光標所在處的字符及其后面字符的位置

     ~: 轉換大小寫

 

     r:替換光標所在處的字符

     R:切換成REPLACE 模式

    

     d:刪除命令,可結合光標跳轉字符,刪除跳轉范圍內的字符

     d$:刪除到行尾

     d^:刪除到非空行首

     d0:刪除到行首

     #COMMAND

    dd:刪除光標所在的行

    #dd :多行刪除

    D:從當前光標位置一直刪除到行尾,留空行,等同于d$

 

     y:  復制,行為相似于d 命令

     y$  y0  y^  ye  yw  yb同上

     #COMMAND

     Y :yy:復制行

     #yy:  復制多行

 

    p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面

P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

 

     c:修改后切換成插入模式

 命令模式 –>  插入模式

w b e $ 0 ^

所謂修改就是先刪除,再轉換為輸入模式

    cc:刪除當前行并輸入新內容

    C:刪除當前光標到行尾,并切換成插入模式

原創文章,作者:Dadi,如若轉載,請注明出處:http://www.www58058.com/32984

(0)
DadiDadi
上一篇 2016-08-11
下一篇 2016-08-11

相關推薦

  • 計算機的組成及其功能

    計算機由五大組成部分 運算器 運算器主要負責數據的算術運算或者邏輯運算 控制器 控制器負責調度系統指令 存儲器 存儲數據的地方,如硬盤和內存 輸入設備和輸出設備 主要用于人機交互,如鍵盤、鼠標,顯示器

    2018-03-04
  • Linux基礎 & bash基礎特性

    Q1:描述計算機的組成及其功能。 計算機的組成:運算器、控制器、存儲設備、輸入設備、輸出設備。 運算器: 運算器是計算機中執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作,亦稱算術邏輯部件。 存儲設備: 計算機總是需要記錄與讀取數據的,而這些數據當然不可能每次都由用戶經過鍵盤…

    Linux干貨 2016-10-30
  • shell-在線翻譯腳本

            在linux過程中難免會碰到陌生的單詞,此時不得不打開翻譯軟件或網頁請求翻譯,但這樣切換界面比較麻煩,也浪費時間;         今天頭腦發熱,嘗試著在網上找命令行翻譯工具,但無果;…

    2017-02-19
  • clsass 10 shell編程(二)及文件查找及壓縮

    一、選擇執行(條件判斷if) 流程控制 過程式編程語言:     順序執行     選擇執行     循環執行 使用read 命令來接受輸入 使用read 來把輸入值分配給一個或多個shell變量:   &nb…

    Linux干貨 2016-08-18
  • Bash Shell編程初學基礎篇之一

     Bash Shell編程初學基礎篇之一 說明: 本文僅供初學Linux  Bash  shell學員參考學習,大神們如有興趣請批評指正?。?!    相信對于很多Linux初學者或者僅僅是聽說Linux還沒有接觸過的同學會有一種神秘感或者不敢碰觸的感覺,今天就幫大家揭開它的神秘面紗,其實并沒有那么深不可測,只…

    Linux干貨 2015-03-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 11:59

    文章整體架構清晰,層次分明,如果能理論結合實際會更好哦。

欧美性久久久久