sed介紹正則表達式
sed(stream editor)是一種非交互式的流編輯器,經過多種轉換修改流經它的文本。默認狀況下,sed不會改變原文件自己,而只是對流經sed命令的文本進行修改,並將修改後的結果打印到標準輸出中。編輯器
sed處理文本時是以行爲單位的,每處理完一行就當即打印出來,而後再處理下一行,直至全文處理結束。sed可作編輯動做包括刪除、查找替換、添加、插入、從其餘文件讀入數據等。ide
sed命令使用的場景包括如下一些:spa
常規編輯器編輯困難的文本。it
太過龐大的文本,使用常規編輯器難以勝任(如vi一個幾百兆的文件)。模板
有規律的文本修改,加快文本處理速度(好比說全文替換)。class
sed命令的功能十分強大,因爲sed自己的複雜度,以及和正則表達式的結合,使用sed命令很是難以掌握。只有不斷的多讀用,才能深入的理解和記住sed的功能。stream
sed經常使用的命令:sed
sed命令 做用 數據
a 在匹配行後面加入文本
c 字符轉換
d 刪除行
D 刪除第一行
i 在匹配行前面接入文本
h 複製模板塊的內容到存儲空間
H 追加模板塊的內容到存儲空間
g 將存儲空間的內容複製到模式空間
G 將存儲空間的內容追加到模式空間
n 讀取下一個輸入行,用下一個命令處理新的行
N 追加下一個輸入行到模板塊後並在兩者間插入新行
p 打印匹配的行
P 打印匹配的第一行
q 退出sed
r 從外部文件中讀取文本
w 追加寫文件
! 匹配的逆
s/old/new 用new替換正則表達式old
= 打印當前行號
sed經常使用的參數:
sed參數 做用
-e 多條件編輯
-h 幫助信息
-n 不輸出不匹配的行
-f 指定sed腳本
-V 版本信息
-i 直接修改原文件