sed的使用

  sed是一種流式文本編輯器; 默認狀況下,sed的全部處理行爲不會影響源文件的內容;正則表達式


 sedexpress

    sed [OPTION]...‘script’ [input-file]...vim

  經常使用選項:編輯器

        -n, --quiet, --silent:對於不能匹配模式的行,默認不輸出到屏幕ide

        -e script, --expression=script:多條件編輯ui

        -f script-file, --file=script-file:從指定的文件中讀取腳本spa

          注意:文件爲一個可以定位到腳本文件的路徑,最好爲絕對路徑;3d

        -i[SUFFIX], --in-place[=SUFFIX]:源文件直接編輯操做;regexp

        -r, --regexp-extended:使sed支持擴展正則表達式;orm

   

    script部分是由匹配地址使用命令組成

  

    匹配地址指的是對文件內容所須要操做的行範圍

        若是爲空地址,即爲表示對文件的全部行進行處理

        若是爲單地址,即爲對所匹配的那惟一一行進行處理

        一般表示地址範圍有一下幾種:

      

            addr1,addr2:從addr1開始到addr2結束的中間全部行;

            first~step:從first標記的行號開始,以step所表明的數字爲步長來計算;

              例如:1~2 :1 1+2 3+2 5+2...

            addr1,+N:從addr1開始,包括addr1所在行,並繼續向後計算N行;

              例如:2,+7 爲2,2+7

            addr1,~N:從addr1開始,包括addr1所在行,向後計算addr1*N行;

              例如:2,~5 爲2,2*5

            /pattern1/,/pattern2/:從被pattern1匹配的第一行開始計算,一直到被/pattern2/匹配到的第一行結束;(這一種最經常使用)

    

    使用命令的是對所匹配到的行採起的使用的命令

        

          =:顯示被模式匹配的行的行號

            例如:sed -n '/^$/=' /etc/grub2.cfg  顯示空白行的行號

        wKiom1lFJAjQW43TAAAmiyc76ok604.png

          a \text:在被匹配的行的後面追加text的內容,支持使用\n換行,從而實現多行追加;

    對上一個空白行後面加上"haha" 

   wKioL1lFJZSy9qhwAAAqDt9J1ZI817.png

          i \text: 在被匹配的行的前面追加text的內容,支持使用\n換行,從而實現多行追加

   在文件/jiaoben/chess.sh中全部有#的行前面加‘abc’

   wKioL1lFKFCg8jzgAAA_88GDYxE060.png

          c \text:在被匹配的行的修改成text的內容,支持使用\n換行,從而實現多行追加

    在文件/jiaoben/chess.sh中全部有#的行修改成‘abc’

    wKioL1lFMcezyImXAAASG5YQog4174.png 

          d:在模式空間中刪除被匹配的行,這樣的行不能再進行標準輸出;

    在文件/jiaoben/chess.sh中全部有#的行刪除掉

   wKioL1lFMjnSnNV5AAAPQ0blkmc466.png

          p:顯示模式空間中被模式匹配的行;

          w filepath: 將模式空間中被模式匹配的行,另存到指定文件中

          r filepath: 將filepath文件中的內容追加至模式空間中被模式匹配的行以後

          !Command:在模式空間中被模式匹配的行,不執行command命令;沒有被匹配的執行command

   

   查找替換功能

    

      s///:查找替換,(/)分隔符能夠任意更換,只要相同便可; 

            s/pattern/text/[control]

           例如:s@/etc/fstab@/etc/mtab@

                將/etc/fstab替換成/etc/mtab


            pattern:計劃查找並替換的內容

            text:要替換的結果

            contro:如何進行替換

              g:行內所有替換

              p:顯示替換成功的行

              w filepath:將替換成功的行另存到filepath文件中。


            vim中支持後向引用:

             s/\(sting\)/&/

             s/\(sting\)/\1/

相關文章
相關標籤/搜索