sed 是一個(gè)比較古老的,功能十分強(qiáng)大的用于文本處理的流編輯器,加上正則表達(dá)式的支持,可以進(jìn)行大量的復(fù)雜的文本編輯操作。sed 本身是一個(gè)非常復(fù)雜的工具,有專門的書籍講解 sed 的具體用法,但是個(gè)人覺得沒有必要去學(xué)習(xí)它的每個(gè)細(xì)節(jié),那樣沒有特別大的實(shí)際意義。網(wǎng)上也有很多關(guān)于 sed 的教程,我也是抱著學(xué)習(xí)的心態(tài)來學(xué)習(xí) sed 的常見的用法,并進(jìn)行系統(tǒng)的總結(jié),內(nèi)容基本覆蓋了 sed 的大部分的知識(shí)點(diǎn)。文中的內(nèi)容比較簡(jiǎn)練,加以實(shí)際示例來幫助去理解 sed 的使用。

一、寫在前邊

1、sed介紹

    sed 全名為 stream editor,流編輯器,用程序的方式來編輯文本,功能相當(dāng)?shù)膹?qiáng)大。是貝爾實(shí)驗(yàn)室的 Lee E.McMahon 在 1973 年到 1974 年之間開發(fā)完成,目前可以在大多數(shù)操作系統(tǒng)中使用,sed 的出現(xiàn)作為 grep 的繼任者。與 vim 等編輯器不同,sed 是一種非交互式編輯器(即用戶不必參與編輯過程),它使用預(yù)先設(shè)定好的編輯指令對(duì)輸入的文本進(jìn)行編輯,完成之后再輸出編輯結(jié)構(gòu)。sed 基本上就是在玩正則模式匹配,所以,玩sed的人,正則表達(dá)式一般都比較強(qiáng)。

2、sed工作原理

    sed會(huì)一次處理一行內(nèi)容。處理時(shí),把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,成為"模式空間",接著用sed命令處理緩沖區(qū)中