Shell指令碼之Sed編輯器

2021-10-22 19:16:25 字數 2530 閱讀 6102

插入sed是一種流編輯器,流編輯器會在編輯器處理資料之前基於預先提供的一組規則來編輯資料流。

可以根據命令來處理資料流中的資料,這些命令要麼從命令列中輸入,要麼儲存在乙個命令文字檔案中。

主要包括讀取、執行和顯示三個過程。

sed -e 『操作』 檔案1 檔案2 …

sed -n -e 『操作』 檔案1 檔案2 …

sed -f 指令碼檔案 檔案1 檔案2 …

sed -i -e 『操作』 檔案1 檔案2 …

sed -e 『n』 檔案1 檔案2 …

sed -n -e 'p' testfile1					#列印所有內容(會輸出兩次)

sed -n -e '=' testfile1 #顯示所有行號並列印內容

sed -n -e 'l' testfile1 #列印資料流中的文字和不可列印的ascii字元如$

sed -n -e '=;p' testfile1 #列印行號並輸出兩次

sed -n -e '=' -e 'p' testfile1 #同上

sed -n ' #同上

> =

> p

> ' testfile1

sed -n '1p' testfile2					#列印第一行

sed -n '$p' testfile2 #列印最後一行

sed -n '1,3p' testfile2 #列印1-3行

sed -n '3,$p' testfile2 #列印3到最後所有行

sed -n '1,+3p' testfile2 #列印1之後的連續3行,即1-4行

sed'5q' testfile2 #列印前5行資訊後退出,q表示退出,**注意這裡不要加-n

sed -n 'p;n' testfile2 #列印奇數行;n表示移動到下一行

sed -n 'n;p' testfile2 #列印偶數行

sed -n '2,$' testfile2 #列印2-最後行的所有奇數行

sed -nr '/rot/p' /etc/passwd #-r表示支援正規表示式

sed

'd' testfile2 #全刪

sed'3d' testfile2 #刪除第三行

sed'2,4d' testfile2 #刪除2-4行

sed'$d' testfile2 #刪除最後一行

sed'/^$/d' testfile2 #刪除空行

sed'/nologin$/!d' /etc/passwd #「!」表示取反操作

sed'/2/,/3/d' testfile2 #從第乙個位置開啟行刪除功能到第二個位置關閉行刪除功能

行範圍 s/舊字串/新字串/替換標記

數字表明新字串將替換第幾處匹配的地方

g表明新字串將會替換所有匹配的地方

p列印與替換命令匹配的行,與-n一起使用

w檔案:將替換的結果寫到檔案中

sed -n 's/root/admin/p' /etc/passwd			#替換root為admin 每行只替換乙個

sed -n 's/root/admin/2p' /etc/passwd #替換root為admin 每行只第二個

sed -n 's/root/admin/gp' /etc/passwd #替換root為admin 全部替換

sed's/root//g' /etc/passwd #把所有的root刪除

sed -n 's/\/bin\/bash/\/bin\/csh/p' /etc/passwd

sed -n 's!/bin/bash!/bin/csh!p' /etc/passwd #使用「!」作為字串分隔符

'/3/c abc' testfile2 #把帶有3的行全部換成abc

sed'/3/ y/3/a/' testfile2 #將3 替換成a

sed'/root/;$g' /etc/passwd #將包含root的行剪下到末尾,h表示複製到剪下板,g表示貼上到指定行後

shell指令碼 sed流編輯器

sed n pattern command file n 顯示pattern查詢出的匹配行 不加 n會顯示原來的行與匹配的行 e 直接在命令列進行sed編輯 sed n e aaaaa p e aaaa p file p是列印的意思 f 有時上文中紅色的長度過長 可以把上文紅色放在檔案file1中 ...

Vim編輯器,Shell指令碼

vim編輯器的前身是vi,vi與vim的命令基本相同,但vim比vi編輯檔案時多了著色功能,當檔案錯誤時,會顯示不同顏色以作區別。vim編輯器下的三種命令 命令模式下的指令 以游標位置為準 指令作用 a游標的下一位 i游標的位置 o游標的下一行 w儲存 q退出 wq儲存並退出 wq 強制儲存退出 q...

Shell中的流編輯器sed

sed編輯器被稱作流編輯器 stream editor 和普通的互動式文字編輯器恰好相反。在互動式文字編輯器中 比如vim 你可以用鍵盤命令來互動式地插入 刪除或替換資料中的文字。流編輯器則會在編輯器處理資料之前基於預先提供的一組規則來編輯資料流。sed options command file s...