sed使用詳解

sed:Stream EDitor

    行編輯器

    語法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...

    常用選項:

        -n, --quiet, --silent:使用安靜(silent)模式。在一般 sed 的用法中,所有來自STDIN的資     料一般都會被列出到屏幕上。但如果加上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動       作)纔會被列出來。

        -e script, --expression=script:多點編輯

        -f script-file, --file=script-file

        -f /path/to/script-file:直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行     filename 內的sed 動作;

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

        -i :直接在原文件裏編輯

    地址定界:

        (1) 不給地址:對全文進行處理

        (2) 單地址:# :第#行

                    /pattern/:被pattern匹配到的每一行

        (3) 地址範圍:#,# : 第#到#

                      #,+#:第#到其後面#行

                      /pat1/,/pat2/:從pattern1匹配到的至pat2匹配到的行

                      #,/pat/:第#行到pat匹配到的行

    編輯命令:

        d :刪除

        p :打印 ,sed默認會將符合條件的行顯示,所以只使用p會輸出兩次匹配行

        a text :在每個符合條件的行後面追加text,支持使用\n實現多行追加

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

        c text :替換符合條件的多行文本

        w filename :將符合條件的內容另存爲filename

        r filename :將filename中的內容讀取到符合條件的行後面

        = : 顯示符合條件的行的行號

        !: 條件取反

        s/查找/替換/ : 查找替換( 也可使用s@@@ s### )

            替換標記:g:glob行內全局替換,默認爲替換第一個

                      s/查找/&替換/ : &:引用查找條件符合的變量       

    示例:

        -n,p:打印/etc/fstab文件的第8到9行,單獨使用"p"命令匹配到的行會出現兩次,同"-n"同     時使用,則只打印匹配行      

   wKiom1awJPaxF2h2AABJN0xHrAI029.png

        -e:一行命令中可執行多次"-e"選項,進行多次編輯。刪除/etc/fstab文件中1到3行和8到10行。

wKioL1awJxmjNN0QAABgdXN4G3I110.png

        -f,a text:將a text編輯命令寫入sedtest文件內,使用"-f"選項引用sedtest文件執行符合     條件的每行後追加text內容

 wKiom1awKPDzsEfLAABDRtu1B9o706.png

        -i:直接在原文件裏編輯

wKiom1awOg-yA_iwAABqgFU6rB0712.png

        i text /ntext1:實現在行前面插入多個文本

wKiom1awOp2TGvWhAABDJU71W0k895.png

        c text:替換符合條件的行爲text

        wKioL1awOyOh0Hz0AAAulNC6dv8202.png

        w filename:將符合條件的內容另存爲filename        wKioL1awO0-gbnNUAAAmMe4q1Yo583.png

        r filname:將filename中的內容讀取到符合條件的行後面    wKioL1awO5LCHhB-AABB8lNQJzw048.png

         = : 顯示符合條件的行的行號

wKiom1awO3bgfCPhAAA-sLAWy4Y266.png

        !: 條件取反:條件爲上例條件,則顯示符合條件之後所有行的行號。

    wKioL1awO-iyQJ_9AAA-v9rm2Cs226.png

        s/查找/替換/ : 查找替換( 也可使用s@@@ s### ):將“UUID”字符替換爲“armo”

wKiom1awO6rzC2hSAAA_fVVzH0E784.png

       高級編輯命令:

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

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

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

              G:從保持空間取出數據追加至模式空間

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

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

              N:追加匹配到的行的下一行到模式空間

              d:刪除模式空間中的行

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章