文字處理三劍客 sed

2022-09-13 13:00:15 字數 2143 閱讀 5688

sed:是乙個編輯器,是乙個強大的檔案處理工具。

sed作用:用來替換、刪除,更新檔案中的內容。sed能自動處理乙個或多個檔案。

sed原理;sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。然後讀入下行,執行下乙個迴圈。如果沒有使諸如『d』的特殊命令,那會在兩個迴圈之間清空模式空間,但不會清空保留空間。這樣不斷重複,直到檔案末尾。

sed工具

用法:

sed [option]... 'script' inputfile...

常用選項:

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

-e 多點編輯

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

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

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

script:

'位址命令'

編輯命令:

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

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

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

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

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

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

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

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

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

s/// 查詢替換,支援使用其它分隔符,s@@@,s###

g 行內全域性替換

p 顯示替換成功的行

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

把f2.bak裡的所有zhangsan改成ab

刪除f2.bak裡的第三行

顯示f2.bak第四行內容

把f2.bak裡的第二行顯示兩邊

顯示f2.bak裡檔案的最後一行

顯示f2.bak檔案裡包含san字串的所有行

顯示f2.bak檔案裡2到5的行之間內容

顯示f2.bak 的奇數行

顯示f2.bak 的偶數行

在f2.bak檔案的第三行的下一行之間新增who

在f2.bak檔案的第三行的上一行之間新增who

在f2.bak檔案 中的每行內容前編序號

替換乙個檔案/etc/passwd裡的這root:x:0:0:root:/root:/bin/bash一行第二個root為test?

在/etc/fstab⽂件中不以#開頭的⾏的⾏⾸增加#號

處理/etc/fstab路徑,使⽤sed命令取出其⽬錄名和基名。

利⽤sed 取出ifconfig命令中本機的ipv4位址

文字處理三劍客之sed

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

文字處理三劍客之sed

sed 工作原理 sed 即 stream editor,和 vi 不同,sed是行編輯器 sed是從檔案或管道中讀取一行,處理一行,輸出一行 再讀取一行,再處理一行,再輸出一行,直到 最後一行。每當處理一行時,把當前處理的行儲存在臨時緩衝區中,稱為模式空間 pattern space 接著用sed...

文字處理三劍客之sed

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