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 09:37
下一篇 2016-08-11 09:37

相關推薦

  • 廣域網中的DNS服務

    拓撲圖                      創建主DNS:     配置文件/etc/named.conf&nbs…

    2017-04-15
  • 初識

    CPU:運算器、控制器、寄存器、緩存 分區不能直接被訪問,需要接口 磁盤0 第一分區  掛載mount      C 磁盤0 第一分區  掛載mount      C:\var 如果一個目錄沒有被分區單獨掛載,那么其數據存儲在父目錄所對應的…

    2017-07-11
  • H3C 設備監測命令大全 (v3)

    H3C 設備監測命令大全  display aaa unsent-h323-call-record  display acl      display alarm   urgent   display…

    Linux干貨 2016-06-01
  • linux常用基礎命令簡介

    linux常用基礎命令簡介 linux入門 基礎 筆記 linux新手入門常用命令語法參數簡介 linux常用基礎命令簡介 cd 語法 選項 ls 語法 選項 echo 語法 選項 history 語法 選項 man 語法 選項 cd cd命令用來切換工作目錄至指定目錄。 其中指定目錄表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至…

    Linux干貨 2017-03-26
  • LAMP系列之(php-fpm模式)分布三臺機器部署

    LAMP系列之(php-fpm模式)分布三臺機器部署 現在我們需要做一個實驗,就是把apache , php-fpm , mariadb ,分別安裝在3臺機器上,協同工作具體如下: 192.168.42.150 apache 192.168.42.151 php-fpm 192.168.42.152 mariadb 關閉防火墻 關閉selinux 分別給這3…

    Linux干貨 2017-06-03
  • Mozart的劍(文本處理工具)——壹劍(文本查看cat、more、less)

    壹劍(文本查看cat、more、less) 博客之前突然想起兩句話,很有意思的話,在此貼出上句,希望可以與大家分享,不可問度娘,有興趣的可以試試。 上句:煙鎖池塘柳    下句: 上句:因荷而得藕    下句: 1>cat命令是Linux系統下的一個文本輸出命令,一般是用于觀看某個文件的內容,特點:一次性顯示整個…

    2017-07-29

評論列表(1條)

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

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

欧美性久久久久