sed 案例

 

sed:Stream Editor文本流編輯,sed是一個「非交互式的」面向字符流的編輯器。能同時處理多個文件多行的內容,能夠不對原文件改動,把整個文件輸入到屏幕,能夠把只匹配到模式的內容輸入到屏幕上。還能夠對原文件改動,可是不會再屏幕上返回結果。html

sed命令的選項(option):linux

-n :只打印模式匹配的行編輯器

-e :直接在命令行模式上進行sed動做編輯,此爲默認選項post

-f :將sed的動做寫在一個文件內,用–f filename 執行filename內的sed動做url

-r :支持擴展表達式spa

-i :直接修改文件內容.net

 

sed -i '/DEVICE/c\Ethernet' test
命令行

#匹配DEVICE的行,替換成Ethernet這行code

c\ 把選定的行改成新的文本
[root@kbase ~]# cat test lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin DEVICE="eth0" BOOTPROTO="static" [root@kbase ~]# sed -i '/DEVICE/c\Ethernet' test [root@kbase ~]# cat test lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin Ethernet BOOTPROTO="static"

 

sed -i 's/static/dhcp/' test

static替換成dhcp(/,@,# 地址定界符)htm

s 替換指定字符
[root@kbase ~]# cat test 
BOOTPROTO="static"  
HWADDR="00:0C:29:90:79:78"  
ONBOOT="yes"

[root@kbase ~]# sed -i 's/static/dhcp/' test
[root@kbase ~]# cat test
BOOTPROTO="dhcp"  
HWADDR="00:0C:29:90:79:78"  
ONBOOT="yes"


sed -i 's/BOOTPROTO/#BOOTPROTO/' test
匹配BOOTPROTO替換成#BOOTPROTO,在配置文件中通常用於註釋某行
[root@kbase ~]# cat test BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" ONBOOT="yes" [root@kbase ~]# sed -i 's/BOOTPROTO/#BOOTPROTO/' test [root@kbase ~]# cat test #BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" ONBOOT="yes" 


sed -i 's/ONBOOT/#&/' test
& 已匹配字符串標記
 
匹配ONBOOT的行的前面添加#號,在配置文件中也表示註釋某行
[root@kbase ~]# cat test #BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" ONBOOT="yes" [root@kbase ~]# sed -i 's/ONBOOT/#&/' test [root@kbase ~]# cat test #BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" #ONBOOT="yes" 

 

sed -i '/ONBOOT/s/#//' test
匹配ONBOOT的行,把#替換成空,即去掉#號,也通常用做去掉#註釋
[root@kbase ~]# cat test #BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" #ONBOOT="yes" [root@kbase ~]# sed -i '/ONBOOT/s/#//' test [root@kbase ~]# cat test #BOOTPROTO="dhcp" HWADDR="00:0C:29:90:79:78" ONBOOT="yes" 

 

參考:

 sed命令詳解

http://man.linuxde.net/sed

相關文章
相關標籤/搜索