標籤:sed
sed(Stream EDitor)簡介
sed是一個流編輯器編輯器,本身是一個管道命令,主要以行為單位處理文字檔,可以將資料進行替換、刪除、新增、選取等特定工作;sed並不會處理文字檔本身,而是每當處理一個檔案時,按順序逐行讀取到模式空間(記憶體)中,而後在模式空間中完成編輯,把編輯的結果輸出到螢幕上,接著處理下一行,反覆操作,直到檔案結尾。
模式空間:將讀取的內容放在記憶體中的一塊地區編輯,這些記憶體空間就稱為模式空間
格式:
sed [options] ‘Address Command‘ FILE...
常用選項:
-i:直接修改源檔案(慎用)
-r:使用擴充Regex,預設是基本Regex
-n:靜默顯示,預設sed會將STDIN的資料列出到螢幕上,使用-n後,則只有經過處理的行才會被顯示出來
-e:同時執行多條命令;-e ‘command‘ -e ‘command‘
-f:指定一個sed指令檔;-f FILENAME
地址定界:
1、Startline,Endline:要處理的起始行到結束行
$:表示最後一行
2、/REGEX/:使用Regex匹配
3、/pattern1/,/pattern2/:第一次被pattern匹配到的行至第二次被pattern匹配到的行
4、Line Number:指定的行
5、Startline +#:從Startline開始,向後的#行
常用命令:
d:刪除合格行
p:顯示合格行
a:在指定的行後面追加新行
a \String:String為新行的內容
\n:可以換行
i:在指定的行前面追加新行;i \String
r:將指定檔案的內容添加到符合行的後面;r FILENAME
w:將指定位址範圍內的行另存新檔指定的檔案中;w FILENAME
s:尋找並替換,預設之替換每行中第一次被匹配到的字串
s/pattern/string/(///可以使用其他符號代替,###、@@@...)
g:代表全域替換;s/prttern/string/g
i:不區分大小寫
&:可以使用後向引用,參考模式匹配到的整個字串
本文出自 “杆兒男” 部落格,請務必保留此出處http://wtime.blog.51cto.com/8829658/1537215