鍍金池/ 教程/ Linux/ sed工作流程
Sed字符串
Sed實用功能
Sed管理模式
sed環(huán)境設(shè)置
sed模式緩沖區(qū)
Sed循環(huán)
Sed模式范圍
Sed教程
Sed正則表達(dá)式
Sed分支
Sed基本語法
sed工作流程
Sed特殊字符
Sed基本命令

sed工作流程

本章將解釋sed究竟如何工作的。要成為一個專家級的sed用戶,需要知道它的內(nèi)部執(zhí)行和結(jié)構(gòu)。sed遵循一個簡單的工作流:讀取,執(zhí)行和顯示。下圖描繪了工作流程。

Sed Workflow

讀取

sed從輸入流(文件,管道,或標(biāo)準(zhǔn)輸入)讀取,并將其存儲在其內(nèi)部的緩沖模式稱為緩沖行。

執(zhí)行

所有sed命令順序地對模式緩沖區(qū)使用。默認(rèn)情況下,sed命令都適用于所有行(全局),除非指定行尋址。

顯示

sed發(fā)送(修改)的內(nèi)容到輸出數(shù)據(jù)流。在發(fā)送數(shù)據(jù)后,模式緩沖器是空的。這個過程一直重復(fù),直到文件被耗盡。

示例

讓我們創(chuàng)建一個文本文件quote.txt包含引用著名作家Paulo Coelho。

[jerry]$ vi quote.txt 
There is only one thing that makes a dream impossible to achieve: the fear of failure. 
 - Paulo Coelho, The Alchemist

為了了解sed的工作流程,讓我們使用sed顯示該文件的內(nèi)容quote.txt。這個例子模仿cat命令。

[jerry]$ sed '' quote.txt

當(dāng)執(zhí)行上面的代碼,就會產(chǎn)生下面的結(jié)果。

There is only one thing that makes a dream impossible to achieve: the fear of failure. 

在上面的例子中,quote.txt輸入文件名和在此之前,有一對單引號的暗示sed 命令。讓我們解讀此操作。

第一sed從輸入文件quote.txt讀取并將其存儲在它的模式緩沖區(qū)行。然后它適用sed關(guān)于模型緩沖區(qū)命令。在我們的例子中沒有sed 命令在那里,因此是對模式緩沖區(qū)未進行任何操作。最后刪除,并打印在標(biāo)準(zhǔn)輸出模式緩沖區(qū)中的內(nèi)容。是不是很簡單?

在下面的例子中,sed 接受來自標(biāo)準(zhǔn)輸入流輸入。

[jerry]$ sed '' 

當(dāng)執(zhí)行上面的代碼,它會提示我們輸入從標(biāo)準(zhǔn)輸入一些文字。因此,讓我們進入一個文本行,如下所示:

There is only one thing that makes a dream impossible to achieve: the fear of failure. 

輸入該行后,當(dāng)我們按下輸入產(chǎn)生以下結(jié)果:

There is only one thing that makes a dream impossible to achieve: the fear of failure.

要從使用的sed會話退出,按下鍵盤上的 ctrl-D (^D).


上一篇:Sed字符串下一篇:Sed循環(huán)