三劍客之sed基礎使用

Stream Editor

sed(意為流編輯器,源自英語“stream editor”的縮寫)是Unix常見的命令行程序。sed用來把文檔或字符串里面的文字經(jīng)過一系列編輯命令轉(zhuǎn)換為另一種格式輸出。sed通常用來匹配一個或多個正則表達式的文本進行處理。
分號(;)可以用作分隔命令的指示符。盡管sed腳本固有的很多限制,一連串的sed指令加起來可以編程像 倉庫番快打磚塊、甚至俄羅斯方塊等電腦游戲的復雜程序。


sed : Stream Editor(流編輯器)的用法

sed默認情況下不對原文件做處理.
sed [options] '[Address]Command' file ...
    Options:
        -n, --quiet, --silent : 靜默模式,不再自動輸出模式空間里的內(nèi)容,而只會顯示命
            令-p要求顯示的內(nèi)容.
        -i : 直接修改原文件.
        -e script : 可以同時執(zhí)行多個腳本
        -f  ed-script-file : 從腳本文件中讀取編輯命令,當有多個命令需要執(zhí)行時,這個很有用.
        -r : 使用擴展正則表達式
    Address:
        1.StartLine,Endline 比如1,100
        2./RegExp/    比如 sed "/^root/d" /etc/passwd  (這里的雙斜線//不能少)
        3./pattern1/,/pattern2/  # 第一次被pattern1匹配到的行開始到第一次被pattern2
                                    匹配到的行結束
        4. LineNumber            # 精確匹配指定的行
        5.$ : 匹配最后一行
        6.StartLine,+N   # 從開始行,向后的N行.
        7.!   -->取反 示例:  /used/ !s/new/used/g   將沒有used的其它行的new改成used

    Command:
        d : 刪除. 比如: sed '1,2d' /etc/fstab
        p : 打印,顯示符合條件的行.
        a \string : 在指定的行后面追加新行,內(nèi)容為string
        i \string: 在指定的行前而插入新行,內(nèi)容為string
        r filename:(read text) :在指定的行后添加入文件內(nèi)容
        R filename:(read lines) : 在指定的行后添加入文件的一行內(nèi)容.
        w filename
          Write the current pattern space to filename. 例如 sed "/oot/w /tmp/oot.txt" /etc/fstab
        W filename
          Write the first line of the current pattern space to filename.  This is a GNU exten‐
          sion.

        s/pattern/string/修飾符 :(查找并替換,默認只替換每行中第一次被模式匹配到的
                                pattern可使用正則)
            修飾符:
                g: 全局替換
                i: 忽略大小寫
              數(shù)字: 如1表示僅替換第1個
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 本文承接之前寫的三十分鐘學會AWK一文,在學習完AWK之后,趁熱打鐵又學習了一下SED,不得不說這兩個工具真的堪稱...
    mylxsw閱讀 4,417評論 3 74
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,219評論 2 33
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Linux 中可以使用強大的編輯器如 vim 和 emacs 來編輯文本文件。但有時候,我們只是需要自動的處理文本...
    shenzhenboy閱讀 572評論 0 0
  • Sed工具工作原理及特性 1. sed是流編輯器,每一次讀取一行到內(nèi)存中,即稱之為模式空間(pattern spa...
    魏鎮(zhèn)坪閱讀 11,028評論 0 12