Linux基礎知識之文本處理三劍客sed

處理文本的工具sed

    1.sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”。接著用sed命令處理緩沖區中的內容,完成處理后,把緩沖區中的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉換程序等。

    2.sed工具的使用:

    用法:

    sed [option] …'script' inputfile…

    常用的選項:

    -n:使用安靜模式實處,sed命令不指定-n的時候會自動將數據打印到屏幕上面;使用-n之后只會顯示匹配到的行;

    -e: 多點編輯

    -f /PATH/TO/SCRIPT_FILE: 從指定文件中讀取編輯腳本

    -r /PATH/FROM/SOMEFILE: 支持使用擴展正則表達式

    -i: 直接修改讀取的文件內容,而不是由屏幕輸出。

    3.sed命令地址定界:

    地址定界:

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

        (2)單地址:

        #: 指定的行

        /pattern/:被此處模式所能夠匹配到的每一行

        (3)地址范圍:

        #,#:從第#行到第#行

        #,+#:從第#行開始到+#行的范圍

        /pattern1/,/pattern2/:從匹配到的第一個字符開始,到匹配到的第二個字符結束

        #,/pat1/:從第

        (4)~:步進

        1~2  只匹配文件當中的奇數行

        2~2  只匹配文件當中的偶數行

    4.編輯命令:

        d: 刪除模式空間匹配的行

        p: 顯示模式空間中的內容

        a \text:在行后面追加文本;支持使用\n 實現多行追加

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

        c \text:替換行為單行或多行文本

        w /path/to/somefile: 保存模式匹配的行至指定文件

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

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

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

    5.查找替換:

        s/// :查找替換, 支持使用其它分隔符,s@@@ ,s###

        替換標記:

        g:  行內全局替換

        p:  顯示替換成功的行

        w  /PATH/TO/SOMEFILE :將替換成功的 行 保存至文件中

    6.高級編輯命令:

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

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

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

        G:從保持空間取出內容追加至模式空間

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

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

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

        d: 刪除模式空間中的行

        D:刪除 當前模式空間開端至\n 的內容(不在傳至標準輸出),放棄之后的命令,但是對剩余模式空間重新執行sed

原創文章,作者:sjsir,如若轉載,請注明出處:http://www.www58058.com/32838

(0)
sjsirsjsir
上一篇 2016-08-11
下一篇 2016-08-11

相關推薦

  • linux目錄管理之整合篇

    目錄配置:     1,根目錄,所有目錄都由根目錄衍生出,與開機,還原,系統修復等操作有關。     2,根目錄下各子目錄應存放的文件。             I,/bin和/sbin目錄,/bin放置的是單用戶維護模式下能被操作的命令,可以被root和一般…

    Linux干貨 2017-05-29
  • CentOS系統啟動

    Linux組成 Linux: kernel+rootfs kernel:  進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 rootfs: 程序和glibc 庫:函數集合, function,  調用接口(頭文件負責描述) 過程調用:procedure ,無返回值 函數調用:function 程序:二進制執行文件 內核設計流派…

    2017-05-15
  • linux文件查找和壓縮

    locate          非實查找,查找是根據全系統文件數據庫進行的,                  #updatedb, 手動生成數據庫,  locate查找速度快 find : &nbs…

    Linux干貨 2017-03-04
  • 馬哥教育網絡21期+第十一周練習博客(下)

    馬哥教育網絡21期+第十一周練習博客(下) 3、描述DNS查詢過程以及DNS服務器類別。 DNS:Domain Name Service 通俗的稱為地址解析,使用TCP和UDP的53端口,是屬于應用層的協議; DNS查詢有2種方式:     遞歸查詢:至發送一次請求,就能找到最終的結果的查…

    Linux干貨 2016-09-26
  • Apache配置壓縮優化時報錯——undefined symbol: inflateEnd

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1345264    圣誕都過了,好久沒來51發博文了。最近一直在忙考試和其他一些私人事務,感覺長期不發博文,有點不好。不是不發,實在是最近…

    Linux干貨 2016-08-15
  • 用戶管理、三種權限、三種特殊權限的使用

    用戶管理、三種權限、三種特殊權限的使用 一、用戶管理 1、軟鏈接:ln  -s  相對于軟鏈接的路徑/絕對路徑   軟鏈接文件    硬鏈接:ln  相對路徑原文件   硬鏈接文件 2、getent的使用    gentent p…

    系統運維 2016-08-05
欧美性久久久久