一.模式空間與保持空間
首先回顧,sed命令執(zhí)行流程參考:【吃飯的家伙】01-老男孩教育-三劍客-sed執(zhí)行流程
模式空間(pattern space)和保持空間(hold space)是sed的兩個(gè)存放數(shù)據(jù)的空間,主要特點(diǎn)如下:
數(shù)據(jù)默認(rèn)讀取到模式空間,我們通過各種命令輸出或處理的一般都是模式空間的內(nèi)容
模式空間的內(nèi)容會(huì)在處理完這一行后清空,就是沒讀取1行,就會(huì)被清空1次
需要特定的命令才能操作(h,H,g,G,x)
這里存放的數(shù)據(jù)會(huì)永久保存(sed讀取完文件后才會(huì)清空這里面的內(nèi)容),所以這里可以用來做很多“有趣的事情”
二.操作命令及含義
P表示:pattern space
H表示:hold space
| 操作的命令 | 含義 | 方向 |
|---|---|---|
| h | 用當(dāng)前模式空間的內(nèi)容 |
P--->H,會(huì)清空H的內(nèi)容 |
| H | 先向保持空間中追加1回車,然后把當(dāng)前模式空間內(nèi)容 |
P--->>H,追加信息到H中 |
| g | 用當(dāng)前保持空間的內(nèi)容 |
P<---H,會(huì)清空P的內(nèi)容 |
| G | 先向模式空間中追加1回車,然后把當(dāng)前保持空間內(nèi)容 |
P<<--H,追加信息到P中 |
| x |
|
P<-->H |
h/H
g/G
x

sed 命令之H;G的執(zhí)行過程.png