sed 教程

sed 是一個(gè)比較古老的,功能十分強(qiáng)大的用于文本處理的流編輯器,加上正則表達(dá)式的支持,可以進(jìn)行大量的復(fù)雜的文本編輯操作。sed 本身是一個(gè)非常復(fù)雜的工具,有專門的書籍講解 sed 的具體用法 。

sed 的教程對 sed 的常見的用法進(jìn)行系統(tǒng)的總結(jié),內(nèi)容基本覆蓋了 sed 的大部分的知識點(diǎn)。文中的內(nèi)容比較簡練,加以實(shí)際示例來幫助去理解 sed 的使用。


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è)定好的編輯指令對輸入的文本進(jìn)行編輯,完成之后再輸出編輯結(jié)構(gòu)。sed 基本上就是在玩正則模式匹配,所以,玩sed的人,正則表達(dá)式一般都比較強(qiáng)。

sed工作原理

    sed會一次處理一行內(nèi)容。處理時(shí),把當(dāng)前處理的行存儲在臨時(shí)緩沖區(qū)中,成為"模式空間",接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。

正則表達(dá)式概念

    在編寫處理字符串的程序或網(wǎng)頁時(shí),經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具,換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼。許多程序設(shè)計(jì)語言都支持利用正則表達(dá)式進(jìn)行字符串操作。在很多文本編輯器里,正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式的文本。

正則表達(dá)式的匹配過程

    簡單描述一下正則表達(dá)式的匹配過程,就是拿正則表達(dá)式所表示的字符串去和原文字符串內(nèi)容去匹配,直到匹配到原文內(nèi)容字符串中的一個(gè)完整子串就表示匹配成功。舉個(gè)例子,有一行文件內(nèi)容"this is better desk",這里用"esk"去匹配,匹配過程是這樣的:首先拿e去匹配文件行內(nèi)容,從this開始,直到better的e,第一個(gè)字符匹配成功,接著s去匹配better字符e后邊的t字符,沒有匹配成功;然后重新拿esk中的e去和better的第二個(gè)t去匹配,沒有成功,接著原始內(nèi)容的下一個(gè)字符,直到desk中的e字符,逐個(gè)匹配s,k字符,到此為止,esk成功匹配,正則表達(dá)式匹配完畢,整個(gè)過程就是這樣,即使再復(fù)雜的正則表達(dá)式的匹配過程也是按照此過程來進(jìn)行的。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清