sed命令基礎

  sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲"模式空間"(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件,簡化對文件的反覆操作;編寫轉換程序等。

 一些基礎練習見sed命令基礎2

用法:

    sed [option] script inputfile

常用的option

  -n:不輸出模式空間的內容到屏幕

  -e:多點編輯

  -f /path/script_file:從指定文件中讀取編輯腳本

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

  -i[.bak] [備份文件並]原處編輯

script:

  地址定界;命令

常用命令:

    d:刪除模式空間的行並立即啓動下一輪循環

    p:打印當前模式空間的內容,並追加到默認輸出之後

    a[\]text:在指定行後面追加文本支持使用\n進行多行追加

    i[\]text:在行前插入文本

    c[\]text:替換行爲單行或多行文本

    w /path/file/:保存模式空間匹配的行至指定文件

    r /path/file:讀取指定文件的文本至模式空間中匹配到的行後

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

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

地址定界:

  1. 如果不給地址,則對全文逐行進行處理
  2. 單地址:
        N:指定的行(N爲數字)

        /pattern/:被此處模式匹配的每一行(關鍵字,正則)

      3. 地址範圍:

            N,M:指定處理從N行到M行

            N,+M:指定處理從N行到N+M行

            /pat1/,/pat2/:指定處理從有第一個/pat1/到第二個/pat2/的行

            N,/pat1/:指定處理從N行到匹配/pat1/的行

        4. ~:步進處理

                1~2:處理奇數行

                2~2:處理偶數行

查找替換模式:

    s/匹配內容/替換內容/[g|p|w]

        支持替換,支持使用其他分隔符,如:s@@@ s###等

        替換標記:

            g:行內全局替換

            p:顯示替換成功的行

            w /path/file:將替換成功的行保存到文件

 

接下來我們舉例說明使用方法:

在我們下列的演示中,只要不加-i選項,都只是將修改的數據打印咋屏幕上,並不是直接修改源文件

刪除某行

sed "3,5d" /etc/passwd

sed "\$d" /etc/passwd

sed "1~2d" /etc/passwd

顯示某行

sed -n "2,5p" /etc/passwd

sed -n -e "3,/root/=" -e "3,/root/p" /etc/passwd

sed -n "/root/,5p" /etc/passwd

添加某行

sed '/root/a\superman' /etc/passwd行後

sed '/root/i\superman' /etc/passwd 行前

sed "1,3a\HELLO" /etc/passwd

替換某行

sed '/root/c\superman' /etc/passwd 代替行

sed '/root/c\superman\nHello\nChinese' /etc/passwd

替換一行的某一部分

sed "1,20s/root/HEHEHE/g" /etc/passwd

sed -n "/nologin/s/nologin/READ/gp" /etc/passwd

發佈了52 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章