在正常情況下,sed將待處理的行讀入模式空間,腳本中的命令就一條接著一條的對該行進行處理,直到腳本執(zhí)行完畢,然后該行被輸出,模式空間請空;然后重復剛才的動作,文件中的新的一行被讀入,直到文件處理完備。但是,各種各樣的原因,比如用戶希望在某個條件下腳本中的某個命令被執(zhí)行,或者希望模式空間得到保留以便下一次的處理,都有可能使得sed在處理文件的時候不按照正常的流程來進行。這個時候,sed設置了一些高級命令來滿足用戶的要求。如果想要學習sed的高級命令,首先要了解如下兩個緩存區(qū):
1、模式空間(pattern space)的定義:模式空間就是一個緩存區(qū),保存sed剛剛從輸入端讀取的。
2、暫存空間(hold space)的定義:暫存空間就是在處理模式空間數(shù)據(jù)的時候,臨時緩存數(shù)據(jù)用的。
還有幾個命令參數(shù):
g: 將hold space中的內(nèi)容拷貝到pattern space中,原來pattern space里的內(nèi)容清除
G: 將hold space中的內(nèi)容append到pattern space\n后
h: 將pattern space中的內(nèi)容拷貝到hold space中,原來的hold space里的內(nèi)容被清除
H: 將pattern space中的內(nèi)容append到hold space\n后
x: 交換pattern space和hold space的內(nèi)容
比如咱們想要倒排一個文件的內(nèi)容,文件如下:
[qiu.li@l-tdata1.tkt.cn6 ~]$ cat tmp 1-line 2-line 3-line
執(zhí)行如下命令:
[qiu.li@l-tdata1.tkt.cn6 ~]$ sed '2,$G;h;$!d' tmp 3-line 2-line 1-line
下面咱們逐步理解上面的執(zhí)行過程
一、讓咱們來分析一下如下三條命令:
二、具體的操作
當然,命令:sed '1!G;h;$!d' tmp 也能有這個效果。
火焰紋章Engage 游戲里不少角色可以培養(yǎng)成強力的隊友,比如安娜......
閱讀數(shù)據(jù)恢復方案:如何從損壞的硬盤中恢復數(shù)據(jù)?硬盤損壞是許多......
閱讀榮耀70系列最近正式通過了3C認證,作為下一代的榮耀旗艦有著不......
閱讀微軟的Windows10 Insider Builds最近推出了一個有用的新功能,當系統(tǒng)......
閱讀暗區(qū)突圍賽季結束保留什么,暗區(qū)突圍賽季結束保留什么?在賽季......
閱讀今天小編為大家分享的是Linux以form表單形式上傳文件講解,希望對大家會有幫助,有需要的朋友可以參考下...
次閱讀
今天小編為大家?guī)淼氖?linux命令行下進入帶空格的文件夾的方法。希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是 Linux上最杰出的新安全子系統(tǒng)。今天小編要為大家分享的是SELinux基本概念詳解,希望對大家會有幫助,有...
次閱讀
最近一些朋友反饋說不知道如何去除Linux Kernel版本號后面的加號?今天小編就為大家分享去除Linux Kernel版本號后面的加號的方法!希望能夠幫助到大家,有需要的朋友一起去看看吧...
次閱讀
WindowsSubsystem for Linux(WSL)2對Windows10版本1903和1909的支持 根據(jù)客戶的反饋,微軟將把WindowsSubsystem for Linux(WSL)2支持帶到Windows10版本1903和Windows1...
次閱讀
今天小編為大家分享的是為Llinux系統(tǒng)添加交換分區(qū)(swap space)的方法。希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
這篇文章主要講述了linux系統(tǒng)很卡的基本排查方法介紹。希望對大家會有幫助,下面就隨小編一起去看看具體的操作吧...
次閱讀
下面小編為大家?guī)淼氖抢胠inux命令行工具進行文本行過濾的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
Linux系統(tǒng)的安裝軟件方式非常多,所以到現(xiàn)在還沒有一個通用的方法能查到某個軟件已經(jīng)是否安裝了,不過下面我總結了一些類型供大家參考...
次閱讀
今天小編將為大家?guī)淼氖荓inux下增大可打開文件描述符的最大數(shù)的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
今天小編為大家?guī)淼氖荓inux下源碼安裝的經(jīng)驗詳解。希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
在本文中,我們將介紹如何將大于 2TB 的新磁盤添加到現(xiàn)有的 Linux 服務器中(如 RHEL/CentOS 或 Debian/Ubuntu)中,感興趣的朋友可以一起看看...
次閱讀
這篇文章主要介紹了Linux批量清空當前目錄中的日志文件,需要的朋友可以參考下...
次閱讀
這篇文章主要介紹了Linux如何通過命令查看日志文件的某幾行(中間幾行或最后幾行),需要的朋友可以參考下...
次閱讀
最近一些朋友問小編Linux下如何設置交換文件?今天小編將為大家?guī)淼氖荓inux下設置交換文件的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀