文字處理三劍客之sed

2021-10-01 19:13:15 字數 1255 閱讀 2648

sed 工作原理

sed 即 stream editor,和 vi 不同,sed是行編輯器

sed是從檔案或管道中讀取一行,處理一行,輸出一行;再讀取一行,再處理一行,再輸出一行,直到

最後一行。

每當處理一行時,把當前處理的行儲存在臨時緩衝區中,稱為模式空間(pattern space),接著用sed

命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,

直到檔案末尾。一次處理一行的設計模式使得sed效能很高,sed在讀取大檔案時不會出現卡頓的現象。

如果使用vi命令開啟幾十m上百m的檔案,明顯會出現有卡頓的現象,這是因為vi命令開啟檔案是一次

性將檔案載入到記憶體,然後再開啟。sed就避免了這種情況,一行一行的處理,開啟速度非常快,執行

速度也很快

sed 基本用法

格式:

sed

[option]

... 'script' inputfile...

常用選項:

-n 不輸出模式空間內容到螢幕,即不自動列印

-e 多點編輯

-f /path/script_file 從指定檔案中讀取編輯指令碼

-r 支援使用擴充套件正規表示式

-i.bak 備份檔案並原處編輯

script格式:

'位址命令'

步進:~

1~2 奇數行

2~2 偶數行

命令:

p 列印當前模式空間內容,追加到預設輸出之後

d 刪除模式空間匹配的行,並立即啟用下一輪迴圈

a [\]text 在指定行後面追加文字,支援使用\n實現多行追加

i [\]text 在行前面插入文字

c [\]text 替換行為單行或多行文字

w /path/file 儲存模式匹配的行至指定檔案

r /path/file 讀取指定檔案的文字至模式空間中匹配到的行後

= 為模式空間中的行列印行號

! 模式空間中匹配行取反處理

s/pattern/string/修飾符 查詢替換,支援使用其它分隔符,可以是其它形式:s@@@,s###

替換修飾符:

g 行內全域性替換

p 顯示替換成功的行

w  /path/file 將替換成功的行儲存至檔案中

文字處理三劍客之sed

sed 全名為 stream editor,流編輯器,用程式的方式來編輯文字。sed 與vim等編輯器不同,sed 是一種非互動式編輯器 即使用者不必參與編輯過程 它使用預先設定好的編輯指令對輸入的文字進行編輯,完成之後再輸出編輯結構。sed會一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區...

文字處理三劍客之sed

sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 patternspace 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。然後讀入下行,執行下乙個迴圈。如果沒有使諸如 d 的特殊命令,那會在兩個迴圈之間清空模式空間,但不會清...

文字處理三劍客 sed

sed 是乙個編輯器,是乙個強大的檔案處理工具。sed作用 用來替換 刪除,更新檔案中的內容。sed能自動處理乙個或多個檔案。sed原理 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容...