與Vim的正則表達式有些不同,下面介紹sed的正則表達式:
1)^匹配一行的開始
2) $匹配一行的結(jié)束
3) .匹配任何的單個字符
4) *匹配另個或者多個以前出現(xiàn)的字符
5) [chars]為了匹配任何字符串的字符,可以使用-來定義字符的范圍[a-z]匹配小寫字母,[a-zA-Z]匹配一個字母[0-9]匹配數(shù)字[a-zA-Z0-9]匹配單個字母或者數(shù)字;
6)字符類關(guān)鍵字:[[:alnum:]]字母(a-zA-Z0-9)[[:alpha:]]字母(a-zA-Z)
7)引用&,表示被匹配的pattern的內(nèi)容;
8)\(\)和相應(yīng)的\1\2等替換排序內(nèi)容等。
Sed:語法
1)‘4,10d’刪除4到10行;’10,4d’只刪除10行;’2,5!d’刪除2-5行外的其他行;’4,+5d’刪除第4行,繼續(xù)刪除下5行,停止刪除輸出其他行;’1,3d‘刪除第一行后,跳過下面3行,繼續(xù)刪除第4行,然后以這種順序進行刪除;’4,d’錯誤;’,10d‘產(chǎn)生語法錯誤
2)s/pattern1/pattern2/flag,flag替換標(biāo)志:g替換所有匹配的字符而不是第一個,Number,僅僅替換第n個匹配的字符;如果發(fā)生替換,輸出匹配空間;w FILENAME發(fā)生了替換將內(nèi)容寫入FILENAME;I or i不區(qū)分大小寫進行匹配;M or m除了^$正常行為外,^匹配換行符后的空字符串,讓$匹配換行符前的空字符串;
3)
Sed:/pattern/action
Action有p輸出該行,d刪除該行,s/模式1/模式2/替代第一次出現(xiàn)的模式1和模式2;
cat /etc/passwd | sed ‘d’
sed –e ’d’ /etc/passwd這兩個采用編輯命令刪除記錄。