sed流編輯器:Stream EDitor
sed行編輯器,使用sed,將文件的行加載到內存,符合sed模式空間的顯示到屏幕上,sed默認不編輯文件,僅對模式空間的數據處理,處理結束後,將符合模式空間的行打印到屏幕上
sed模式空間
sed [options選項] 'AddressCommand' file ...
options: 選項,如 -n靜默模式,只顯示符合條件的行,不顯示模式空間的內容
Address: 指的是文件行的地址,如第一行到第10行
Command: 指的是對文件行的操作,刪除,打印等
file: 指的是文件的路徑
三個點: 可以接多個文件
options
1、-n
靜默模式,只顯示符合條件的行,不顯示模式空間的內容
2、-p
3、-e
-e 'script' -e 'script' 引號裏的內容,-e 可以指定多個
4、-r
表示使用擴展的表達式
Address
1、Startline,Endline
startline,開始行,默認是從第一行開始
endline, 結束行,$表示最後一行
2、/RegExp正則表達式/
正則表達式匹配到的行,如 /^root/ 以root開始的行
3、/模式1/,/模式2/
第一次被模式1匹配到的行開始,至第一次被模式2匹配到的行結束中間的所有行
4、LineNumber 行號
5、StartLine,+N
從startline開始,向後N行,共N+1行
Command
1、d:刪除符合條件的行
2、p:顯示符合條件的行
3、a \string:在指定行的後面新加一行,內容爲string
4、 i \string:在指定行的前面新加一行,內容爲string
5、r file文件路徑:將指定文件的內容,添加到符合條件的行的後面
6、w file文件路徑:將指定範圍的內容,另存至指定的文件中
s:查找並替換
s/查找/替換/修飾符
s/查找/替換/g
s#查找#替換#g
s@查找@替換@g
修飾符:
g 全局替換
i 忽略大小寫
例如使用s###g更改selinux配置文件
s###g支持後項引用(將文本中的like->liker love->lover)
&代表查找到的內容,就替換爲查找到的+r
sed命令練習
-n靜默模式,不使用-n,以UUID開始的行會打印屏幕上兩次,第一次是模式空間輸出,第二次是p 輸出
刪除文件的前兩行,但不修改原文件
刪除文件的前兩行,修改原文件
sed '2,+2d' zmg.txt
sed '1,2a \hello' zmg.txt
sed '1,2i \hello' zmg.txt