sed [options] '匹配條件&操作指令;匹配條件&操作指令;' file
options:
| 選項 | 功能 |
|---|---|
| -n ,--silent | 因為sed命令默認會向屏幕輸出,設(shè)置此選項后阻止輸出 |
| -r | 支持擴展正則,sed默認是不支持?jǐn)U展正則的 |
| -i [suffix] | 直接修改源文件,如果設(shè)置了后綴名,sed將將數(shù)據(jù)備份;sed默認是只修改緩沖區(qū)的,并打印到屏幕上 |
| -e | 指定需要執(zhí)行的sed命令,支持使用多個-e參數(shù) |
| -f | 指定需要執(zhí)行的腳本文件,需要提前將sed命令寫入文件中 |
基本操作指令
| 指令 | 功能 |
|---|---|
| p | 打印當(dāng)前匹配條件匹配的行 |
| l | 打印當(dāng)前匹配條件匹配的行(顯示控制字符) |
| = | 打印行號 |
| a text | 在匹配的行后添加字符串text,text是獨占一行 |
| i text | 在匹配的行前添加字符串text,text是獨占一行 |
| d | 刪除匹配的行 |
| c text | 將匹配的行的整行替換為text |
| r filename | 從filename中讀取內(nèi)容添加到匹配的行后面 |
| w filename | 將匹配的行的內(nèi)容寫到文件filename中 |
| q [exit code] | 立刻退出sed腳本 |
| s/regexp/replace/ | 使用正則匹配,替換匹配到的數(shù)據(jù),不是整行哦;regexp是正則表達式,replace是用來替換的字符串 |
| s/regexp/replace/g | 加個g,如果一行數(shù)據(jù)中有多個regexp,都替換成replace |
| s/regexp/replace/number | 加個n,如果一行數(shù)據(jù)中有多個regexp,僅僅替換第n個 |
數(shù)據(jù)定位方案
| 格式 | 功能 |
|---|---|
| 數(shù)字 | 1就是第一行; 1,3就是第一行到第三行; |
| 數(shù)字1~數(shù)字2 | 數(shù)字1是起始行號,數(shù)字2是步長,例如1~3 等于匹配1,4,7,…… |
| 數(shù)字1,+N | 從數(shù)組1開始及其后面N行,例 1,+3 |
| $ | 匹配最后一行 |
| /regexp/ | 正則表達式 |
| \cregexpc | 使用正則表達式匹配,c可以是任意字符,\xAAx將匹配AA |
| ! | 反操作 |