歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Sed of UNIX/Linux

Sed of UNIX/Linux

日期:2017/2/28 16:31:58   编辑:Linux教程

1. Sed簡介

Sed 是一種在線編輯器,它一次處理一行內容;處理時,把當前處理的行存儲在臨時緩沖區中,稱為"模式空間"(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕;接著處理下一行,這樣不斷重復,直到文件末尾;文件內容並沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。

2. 定址

可以通過定址來定位你所希望編輯的行,該地址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的范圍(包括行數表示的那兩行)。如1,3表示1,2,3行,美元符號($)表示最後一行。范圍可以通過數據、正則表達式或者二者結合的方式確定。

3. Sed命令

調用sed命令有兩種形式:

sed [options] 'command' file(s)

sed [options] -f scriptfile file(s)

命令說明:

a\

在當前行後面加入一行文本。

b lable

分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾。

c\

用新的文本改變本行的文本。

d

從模板塊(Pattern space)位置刪除行。

D

刪除模板塊的第一行。

i\

在當前行上面插入文本。

h

拷貝模板塊的內容到內存中的緩沖區。

H

追加模板塊的內容到內存中的緩沖區

g

獲得內存緩沖區的內容,並替代當前模板塊中的文本。

G

獲得內存緩沖區的內容,並追加到當前模板塊文本的後面。

l

列表不能打印字符的清單。

n

讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。

N

追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼。

p

打印模板塊的行。

P(大寫)

打印模板塊的第一行。

q

退出Sed。

r file

從file中讀行。

t label

if分支,從最後一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。

T label

錯誤分支,從最後一行開始,一旦發生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。

w file

寫並追加模板塊到file末尾。

W file

寫並追加模板塊的第一行到file末尾。

!

表示後面的命令對所有沒有被選定的行發生作用。

s/re/string

用string替換正則表達式re。

=

打印當前行號碼。

#

把注釋擴展到下一個換行符以前。

替換標記

g表示行內全面替換。

p表示打印行。

w表示把行寫入一個文件。

x表示互換模板塊中的文本和緩沖區中的文本。

y表示把一個字符翻譯為另外的字符(但是不用於正則表達式)

Copyright © Linux教程網 All Rights Reserved