sed进阶教程
尋址規(guī)則
常規(guī)尋址
- 如果沒有指定地址,那么命令將應用于每一行。
- 如果只有一個地址,那么命令應用于與這個地址匹配的任意行。
- 如果指定了由逗號分隔的兩個地址,那么命令應用于匹配第一個地址(不包括第一個地址)到匹配第二個地址的行(包括此行)。
- 如果地址后面跟有感嘆號(!),那么命令就應用于不匹配該地址的所有的行。
舉例
ed中使用尋址擴大受命令影響的行數(shù);sed使用尋址限制受命令影響的行數(shù)。
測試文本: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
刪除了從第一行直到第一個空行的所有的行,可用它來刪除保存在文件中的Internet郵件消息中的郵件頭。
1,/^$/d
嵌套尋址
sed使用大括號{}將一個地址嵌套在另一個地址中,或者在相同的地址上應用多個命令。
舉例
/?\.TS/,/?\.TE/{/?$/ds/?\.ps 10/.ps 8/s/?\.vs 12/.vs 10/ } View Code書寫要求
左大括號必須在行末
右大括號本身必須單獨占一行
確保在大括號之后沒有空格。
注釋
在sed的System V版本中,注釋只允許出現(xiàn)在第一行。而有的版本,則可以在腳本的任何地方放置注釋,甚至是跟在命令行的后面。
注釋以#開頭
如果是#n,那么腳本不會自動產生輸出。這和指定命令行選項-n是等價的。跟在n后面的其余的內容被看做是注釋。在POSIX標準中,采用這種方式的#n必須是文件的前兩個字符。
如果注釋內容太多,一行輸入不完,則使用反斜杠 \ 來續(xù)行,但是“新行”必須以#開頭
轉載于:https://www.cnblogs.com/kelamoyujuzhen/p/10079540.html
總結
- 上一篇: 前端面试8:渲染机制
- 下一篇: 优秀程序员必须知道的32个算法,提高你的