sed相關

1 global flag正則表達式

sed 's/xxx/xxx/' inputfile,若是沒有帶global flag g的話,匹配替換的只是inputfile中的每一行的第一個匹配項。若是帶了g的話,纔會所有都替換。input

s命令替換的是行裏面匹配了前面的模式的部分,也就是說,s是部分替換。it

例子:MBA_students.txt
102,Jason Smith,IT Manager
103,Raj Reddy,Sysadmin
104,Anand Ram,Developer
105,Jane Miller,Sales Managersed

sed 's/a/A/' MBA_students.txtfile

輸出:
102,JAson Smith,IT Manager
103,RAj Reddy,Sysadmin
104,AnAnd Ram,Developer
105,JAne Miller,Sales Managererror

sed 's/a/A/' MBA_students.txt文件

輸出:process

102,JAson Smith,IT MAnAger
103,RAj Reddy,SysAdmin
104,AnAnd RAm,Developer
105,JAne Miller,SAles MAnAgerab

2 使用-i選項編輯以後替換原文件arc

sed -i -e SCRIPT inputfile,這裏必定要用-e,不然會出現unterminated substitute pattern。

 

3 使用\(..\)進行子串匹配

3.1 用於\n獲取

匹配到的子串能夠用\1,\2,\3來獲取。

3.2 使得裏面的模式爲一個總體

\(abcd\)*,匹配0個或者多個abcd。

也就是說,\(\)裏面的是一個模式就能夠了,而後多個的話,從前到後用\一、\2能夠獲取,其它的沒有影響。

 

 

4 多個模式鏈接

多個模式連着寫就是多個模式一塊兒匹配,一塊兒處理。若是不是一塊兒匹配的話,用\|,表示要麼前者匹配,要麼後者匹配,而後分別處理。

例子 \(error processing \)\(package \|archive \),匹配「error processing package 」或者匹配「error processing archive 」。

 

5 正則表達式匹配的長度是有限的

正則表達式匹配輸入行,匹配結果的長度是有限的,即子串的長度是有限的。它會用replacement來替換這個匹配上的子串。

相關文章
相關標籤/搜索