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 的特殊命令,那會在兩個迴圈之間清空模式空間,但不會清...