Linux命令sed

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文件路徑:將指定文件的內容,添加到符合條件的行的後面

Linux命令sed

6、w file文件路徑:將指定範圍的內容,另存至指定的文件中

Linux命令sed

s:查找並替換

s/查找/替換/修飾符

s/查找/替換/g
s#查找#替換#g
s@查找@替換@g

修飾符:

g 全局替換
i 忽略大小寫

例如使用s###g更改selinux配置文件
Linux命令sed

s###g支持後項引用(將文本中的like->liker love->lover)
&代表查找到的內容,就替換爲查找到的+r
Linux命令sed
Linux命令sed

sed命令練習

Linux命令sed

-n靜默模式,不使用-n,以UUID開始的行會打印屏幕上兩次,第一次是模式空間輸出,第二次是p 輸出
Linux命令sed
Linux命令sed

刪除文件的前兩行,但不修改原文件
Linux命令sed

刪除文件的前兩行,修改原文件
Linux命令sed

sed '2,+2d' zmg.txt
Linux命令sed
sed '1,2a \hello' zmg.txt
Linux命令sed
sed '1,2i \hello' zmg.txt
Linux命令sed

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章