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命令處理緩衝區中的內容...