sed(Stream Editor 流編輯器),作為三劍客的一份子,主要的功能有增刪改查。
為什麼稱之為「流」編輯器呢?
大家知道:在Linux文件系統中,一切都可以作為文件來處理。
比如:配置文件、設備文件、日誌等等。
sed就類似於工廠流水線作業的車間一樣,文件中的每行內容都是生產元件,經過sed車間流水線處理,最終會變成成品。
同grep一樣,sed提供兩種方式:
◆ stdout | sed [option] 「pattern command」
◆ sed [option] 「pattern command」 file
第一種是從文本中直接使用pattern匹配搜索
第二種是從標準輸出中處理
練習:
單行插入
多行插入
刪除內容
◆ 「#」作為定界符,「/」也可以作為定界符,當替換內容有包含定界符時,需要進行轉義
◆ 如果要修改文件內容,需要加「-i」參數
練習:
修改文件內容,不對源文件起效
修改源文件內容
修改文件指定行對應的內容
正則表達式中的分組功能sed也是可以支持的,用()記住正則表達式的一部分,其中,\1為第一個小括號裡面的內容,如果還有其他的下括號,那麼\2即可第二個,以此類推...,最多記住9個。
實例: I am yy teacher.這串文本想要保留yy,刪除剩餘的部分
給配置文件中某一項配置加注釋
查詢相比較是最簡單的,sed中的查詢相比cat、more命令可以更加精細。
例如:
查詢文件第二行內容(p即表示查詢)
查詢文件1-10行
注意:p查詢命令需要和-n參數結合一起使用,如果不使用-n 會輸出原來行內容及匹配行的內容,-n表示取消原來行輸出
用sed取出Linux網卡eth0的IP位址
將/etc/passwd文件中非單詞字符替換成空格
◆ 雙引號把雙引號的內容輸出出來;如果內容中有命令,變量等,會先把命令,變量解析出結果,然後再輸出最終內容來。雙引號內命令或變量的寫法為命令或變量或$(命令或變量)。
◆ 單引號所見即所得,將單引號內的內容原樣輸出,阻止所有字符的轉義。
本文由檸檬班歪歪原創,轉載需註明出處!
轉發到朋友圈是最高的讚賞
關注檸檬班微信公眾號
領取100G軟體測試資料
讓軟體測試學習變得更簡單!