天天看點

每天三分鐘搞定linux shell腳本(35) sed編輯器來了!!!sed的輸入

sed的輸入

每天三分鐘搞定linux shell腳本(35) sed編輯器來了!!!sed的輸入

除了使用vi或者vim來編輯文本,還可以使用sed和awk指令編輯器批量處理 文本,本節學習sed編輯器。sed是

流編輯器

(stream editor),根據預先定好的規則處理文本。sed一次取出一行進行處理,并把結果輸出到标準輸出中。

1 用管道給sed輸入

用管道給sed輸入資料,舉例如下:

運作後結果為:

wu lin nei zhuan
           

這裡的

s

替換

(substitute)的意思。

2 sed指令從文本檔案取資料

建立testfile檔案,檔案内容如下:

wu lin wai zhuan is good.
da ran fang is good.
xi you ji hou zhuan is good.
           

然後用sed指令把所有的

good

改成

wonderful

,輸入:

sed 's/good/wonderful/' testfile
           

結果為:

wu lin wai zhuan is wonderful.
da ran fang is wonderful.
xi you ji hou zhuan is wonderful.
           

注意,s

ed指令并不會修改testfile内容,而是把結果輸出到标準輸出中

3 使用多個指令

在使用sed指令的時候,使用多個指令的時候要用

-e

選項。比如想把上面的testfile中的

is

改成

was

,把

good

改成

great

輸入:

sed -e 's/is/was/;s/good/great/' testfile
           

輸出結果為:

wu lin wai zhuan was great.
da ran fang was great.
xi you ji hou zhuan was great.
           

注意指令與指令之間使用

分号

隔開。

4 把指令放到檔案中

有時候可以把較多的指令放進一個檔案中,然後用sed指令去加載。比如建立一個檔案去存儲指令,建立檔案sedfile,内容如下:

s/is/was/
s/good/great/
           

然後在sed指令後面增加

-f

參數去加載這個檔案。

sed -f sedfile testfile
           

運作結果為:

wu lin wai zhuan was great.
da ran fang was great.
xi you ji hou zhuan was great.
           

繼續閱讀