【進(jìn)階】04-老男孩教育-sed命令模式空間及保持空間命令

運(yùn)維學(xué)習(xí)交流群-點(diǎn)我加群:598972270

一.模式空間與保持空間

首先回顧,sed命令執(zhí)行流程參考:【吃飯的家伙】01-老男孩教育-三劍客-sed執(zhí)行流程

模式空間(pattern space)和保持空間(hold space)是sed的兩個(gè)存放數(shù)據(jù)的空間,主要特點(diǎn)如下:

\color{red}{模式空間:}

數(shù)據(jù)默認(rèn)讀取到模式空間,我們通過各種命令輸出或處理的一般都是模式空間的內(nèi)容
模式空間的內(nèi)容會(huì)在處理完這一行后清空,就是沒讀取1行,就會(huì)被清空1次

\color{blue}{保持空間::}

需要特定的命令才能操作(h,H,g,G,x)
這里存放的數(shù)據(jù)會(huì)永久保存(sed讀取完文件后才會(huì)清空這里面的內(nèi)容),所以這里可以用來做很多“有趣的事情”

二.操作命令及含義

P表示:pattern space
H表示:hold space

操作的命令 含義 方向
h 用當(dāng)前模式空間的內(nèi)容\color{red}{替換}保持空間的內(nèi)容 P--->H,會(huì)清空H的內(nèi)容
H 先向保持空間中追加1回車,然后把當(dāng)前模式空間內(nèi)容\color{red}{追加}保持空間 P--->>H,追加信息到H中
g 用當(dāng)前保持空間的內(nèi)容\color{red}{替換}模式空間的內(nèi)容 P<---H,會(huì)清空P的內(nèi)容
G 先向模式空間中追加1回車,然后把當(dāng)前保持空間內(nèi)容\color{red}{追加}模式空間 P<<--H,追加信息到P中
x \color{red}{交換}當(dāng)前保持空間模式空間的內(nèi)容 P<-->H

h/H

g/G

x

sed 命令之H;G的執(zhí)行過程.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容