Shell之sed命令


  sed用於一次性處理所有的編輯任務,尤為高效,為用戶節省了大量的時間,sed適用於以下三種場合:

 1、編輯相對交互文本編輯器而言太大的文件;

  2、編輯命令太復雜,在交互式文本編輯器中難以輸入的情況;

  3、對文件掃描一遍,但是需要執行多個編輯函數的情況;

  sed 只是對緩沖區中原始文件的副本進行編輯,並不編輯原始的文件。因此,如果需要保存改動內容,需要將輸出重定向到另一個文件,可以使用下面格式的命令:

    sed  'sed命令'  input_file > result_file

 該命令將sed 命令對input-file的更改保存到result-file中,“>”符號是重定向符號;

 調用sed的三種方式:

    1、在shell中直接調用sed,格式為:sed  [選項]  'sed命令'   輸入文件  //必須用單引號引起sed命令

    2、將sed命令插入腳本文件后,然后通過sed命令調用它,格式為:

        sed   [選項]   -f    sed腳本   輸入文件

    3、直接執行sed腳本,格式為:

         ./sed 腳本文件  輸入文件

  sed命令標識對文本進行如何處理。如打印、刪除、追加、插入、替換等

sed命令定位文本的方法:

  sed   -n  '1p'  input    //僅僅打印input的第一行; 若不帶-n選項,則不僅僅打印第1行,還會打印input的全部內容;

  sed   -n  '3, 6p'  input     //僅僅打印第3-6行

  使用/pattern/方法進行模式匹配

    sed  -n  '/Certificate/p'  input    //打印匹配Certificate的行,大小寫敏感

    sed  -n  /Certificate/,  6p' input    //打印匹配Certificate的行 到 6 之間的行  

   sed編輯命令 a\ 符號用於追加文本,它可以將指定文本的一行或多行追加到指定行后面。如果不指定文本追加位置,sed默認放置到每一行的后面,追加文本的格式為:

     sed  '指定地址a\text'  輸入文件

    注:指定地址以匹配模式/pattern/或行號的形式給出,用於定位新文本的追加位置,sed對\a后的文本進行追加操作(增加新的一行);

    特別注意:sed完成追加文本功能后,只是將結果輸出到標准輸出,原始文件並沒有做任何改變;

1 /bin/sed   -f          #必須加上-f選項, 若無此選項,腳本執行報錯
2 /test/a\                #a\表示在test所在的行之后添加文本
3 
4 #添加內容
5 We append a new line . \    #"\”符號表示換行
6 We append  another line.

  "$"符號,在正則表達式中表示行尾,特別注意的是,在sed中, "$"表示最后一行;

  sed  -n  '2, 10!p'  input  //表示打印出非2--10行的行;

  插入文本:sed   '指定地址i\text'   輸入文件  //與“a\”剛好相反,在指定位置所在行之前行拆入text; (text是新的一行)

    

 

  

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM