複製鏈接
請複製以下鏈接發送給好友

SED

(流編輯器(stream editor)縮寫)

鎖定
sed是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱為“模式空間”(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程序等。以下介紹的是Gnu版本的Sed 3.02。
外文名
SED
類    型
在線編輯器
特    點
一次處理一行內容
全    稱
stream editor

目錄

SEDSed編輯器

sed是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱為“模式空間”(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程序等。以下介紹的是Gnu版本的Sed 3.02。
sed是stream editor的縮寫。是一個非交互式上下文(context)編輯器,它被設計在下列三種情況下發揮作用:
(1)編輯那些對舒適的交互式編輯而言太大的文件。
(2)在編輯命令太複雜而難於在交互模式下鍵入的時候編輯任何大小的文件。
(3)要在對輸入的一趟掃描中有效的進行多個‘全局’(global)編輯函數。
因為每次只把輸入的某些行駐留在內存中,並且不使用臨時文件,所以可編輯的文件的有效大小,只受限於輸入和輸出要同時共存於次級存儲的要求。
可以單獨的建立複雜的編輯腳本並作為給 sed 的命令文件。對於複雜的編輯,這節省了可觀的鍵入和隨之而來的錯誤。從命令文件運行 sed 高效於作者所知道的任何交互式編輯器,甚至包括能用預先寫好的腳本驅動的編輯器。
相較於交互式編輯器而言,根本性的損失是缺乏相對地址(由於操作是每次一行的),和缺乏對命令如期運行的立即驗證。
sed 是 UNⅨ編輯器ed 的直系後代。由於在交互式和非交互式操作之間的差異,在 ed 和 sed 之間已經有了可觀的變化;甚至 ed 的慣常用户都會經常感到驚訝(並可能氣憤),如果他們沒有閲讀本文檔的章節 2 和 3,就草率的使用 sed 的話。在兩個編輯器之間最顯著的家族性共同之處,在於他們所識別的模式(‘正則表達式’)的種類;匹配模式的代碼可以從 ed 的代碼幾乎原封不動的複製過來,在章節 2 中對正則表達式的描述就是從 UNⅨ Programmer’s Manual[1] 幾乎原封不動的複製過來的。(代碼和描述都是Dennis M. Ritchie寫的)。

SED定址

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