sed进阶教程
尋址規(guī)則
常規(guī)尋址
- 如果沒有指定地址,那么命令將應(yīng)用于每一行。
- 如果只有一個(gè)地址,那么命令應(yīng)用于與這個(gè)地址匹配的任意行。
- 如果指定了由逗號(hào)分隔的兩個(gè)地址,那么命令應(yīng)用于匹配第一個(gè)地址(不包括第一個(gè)地址)到匹配第二個(gè)地址的行(包括此行)。
- 如果地址后面跟有感嘆號(hào)(!),那么命令就應(yīng)用于不匹配該地址的所有的行。
舉例
ed中使用尋址擴(kuò)大受命令影響的行數(shù);sed使用尋址限制受命令影響的行數(shù)。
測(cè)試文本:list
John Daggett, 341 King Road, Plymouth MA Alice Ford, 22 East Broadway, Richmond VA Orville Thomas, 11345 Oak Bridge Road, Tulsa OK Terry Kalkas, 402 Lans Road, Beaver Falls PA Eric Adams, 20 Post Road, Sudbury MA Hubert Sims, 328A Brook Road, Roanoke VA Amy Wilde, 334 Bayshore Pkwy, Mountain View CA Sal Carpenter, 73 6th Street, Boston MA View Code刪除所有行
d
刪除首行
1d
刪除尾行
$d
刪除空行
/^$/d
刪除了從第一行直到第一個(gè)空行的所有的行,可用它來刪除保存在文件中的Internet郵件消息中的郵件頭。
1,/^$/d
嵌套尋址
sed使用大括號(hào){}將一個(gè)地址嵌套在另一個(gè)地址中,或者在相同的地址上應(yīng)用多個(gè)命令。
舉例
/?\.TS/,/?\.TE/{/?$/ds/?\.ps 10/.ps 8/s/?\.vs 12/.vs 10/ } View Code書寫要求
左大括號(hào)必須在行末
右大括號(hào)本身必須單獨(dú)占一行
確保在大括號(hào)之后沒有空格。
注釋
在sed的System V版本中,注釋只允許出現(xiàn)在第一行。而有的版本,則可以在腳本的任何地方放置注釋,甚至是跟在命令行的后面。
注釋以#開頭
如果是#n,那么腳本不會(huì)自動(dòng)產(chǎn)生輸出。這和指定命令行選項(xiàng)-n是等價(jià)的。跟在n后面的其余的內(nèi)容被看做是注釋。在POSIX標(biāo)準(zhǔn)中,采用這種方式的#n必須是文件的前兩個(gè)字符。
如果注釋內(nèi)容太多,一行輸入不完,則使用反斜杠 \ 來續(xù)行,但是“新行”必須以#開頭
轉(zhuǎn)載于:https://www.cnblogs.com/kelamoyujuzhen/p/10079540.html
總結(jié)
- 上一篇: 前端面试8:渲染机制
- 下一篇: 优秀程序员必须知道的32个算法,提高你的