shell學習之sed操做

比起用交互的文本編輯,還有不少命令能夠用。好比sed爲流編輯器(Stream Edit),一個流字,這個逼格就上去了。html

sed是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做;編寫轉換程序等。編輯器

sed編輯器只需對數據流進行一遍處理就能夠完成編輯操做。使得sed編輯器要比交互式編輯器快得多,你能夠快速完成對數據的自動修改。this

能夠看到流編輯器會在編輯器處理數據以前基於預先提供的一組規則來編輯數據流。spa

sed命令的格式以下:命令行

還有參數和動做說明,我在菜鳥教程那截圖一張3d

默認狀況下,sed編輯器會將指定的命令應用到STDIN輸入流上。這樣你能夠直接將數據通 過管道輸入sed編輯器處理。htm

echo "this is the world" | sed 's/world/big world/' blog

輸出:this is the big world教程

若是後面接的文件,那麼操做的就是文件內每行的數據,好比:sed 's/world/big world/'  testfile 會輸出,可是文件內容是不會改的。ip

要在sed命令行上執行多個命令時,只要用-e選項就能夠了。

好比:sed 's/world/big world/ ;s/this/that/' testfile

兩個命令都做用到文件中的每行數據上。命令之間必須用分號隔開,而且在命令末尾和分號之間不能有空格。

若是有大量要處理的sed命令,那麼將它們放進一個單獨的文件中一般會更方便一些。 能夠在sed命令中用-f選項來指定文件。

sed -f script1 testfile

來看看增刪改

陷在testfile文件中加入幾行數據

刪除某幾行 sed '2,5d' testfile 

增長某幾行數據,sed '2a hello xin' testfile

替換行,sed '2,5c I am cool!' testfile 

也能夠用來查詢sed '/dog/p'  testfile ,固然我仍是比較喜歡grep

參考:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html

https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html

相關文章
相關標籤/搜索