sed:Stream EDitor
行編輯器
語法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...
常用選項:
-n, --quiet, --silent:使用安靜(silent)模式。在一般 sed 的用法中,所有來自STDIN的資 料一般都會被列出到屏幕上。但如果加上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動 作)纔會被列出來。
-e script, --expression=script:多點編輯
-f script-file, --file=script-file
-f /path/to/script-file:直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;
-r, --regexp-extended:支持使用擴展正則表達式
-i :直接在原文件裏編輯
地址定界:
(1) 不給地址:對全文進行處理
(2) 單地址:# :第#行
/pattern/:被pattern匹配到的每一行
(3) 地址範圍:#,# : 第#到#
#,+#:第#到其後面#行
/pat1/,/pat2/:從pattern1匹配到的至pat2匹配到的行
#,/pat/:第#行到pat匹配到的行
編輯命令:
d :刪除
p :打印 ,sed默認會將符合條件的行顯示,所以只使用p會輸出兩次匹配行
a text :在每個符合條件的行後面追加text,支持使用\n實現多行追加
i text : 在行前面插入文本,支持使用\n實現多行插入
c text :替換符合條件的多行文本
w filename :將符合條件的內容另存爲filename
r filename :將filename中的內容讀取到符合條件的行後面
= : 顯示符合條件的行的行號
!: 條件取反
s/查找/替換/ : 查找替換( 也可使用s@@@ s### )
替換標記:g:glob行內全局替換,默認爲替換第一個
s/查找/&替換/ : &:引用查找條件符合的變量
示例:
-n,p:打印/etc/fstab文件的第8到9行,單獨使用"p"命令匹配到的行會出現兩次,同"-n"同 時使用,則只打印匹配行
-e:一行命令中可執行多次"-e"選項,進行多次編輯。刪除/etc/fstab文件中1到3行和8到10行。
-f,a text:將a text編輯命令寫入sedtest文件內,使用"-f"選項引用sedtest文件執行符合 條件的每行後追加text內容
-i:直接在原文件裏編輯
i text /ntext1:實現在行前面插入多個文本
c text:替換符合條件的行爲text
w filename:將符合條件的內容另存爲filename
r filname:將filename中的內容讀取到符合條件的行後面
= : 顯示符合條件的行的行號
!: 條件取反:條件爲上例條件,則顯示符合條件之後所有行的行號。
s/查找/替換/ : 查找替換( 也可使用s@@@ s### ):將“UUID”字符替換爲“armo”
高級編輯命令:
h:把模式空間中的內容覆蓋至保持空間中
H:把模式空間中的內容追加至保持空間中
g:從保持空間取出數據覆蓋至模式空間
G:從保持空間取出數據追加至模式空間
x:把模式空間中的內容與保持空間中的內容進行互換
n:讀取匹配到的行的下一行到模式空間
N:追加匹配到的行的下一行到模式空間
d:刪除模式空間中的行
D:刪除多行模式空間中的所有行