本篇文章給大家分享的是有關(guān)怎么進(jìn)行sed的使用,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),遂川網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:遂川等地區(qū)。遂川做網(wǎng)站價(jià)格咨詢(xún):028-86922220
Sed默認(rèn)不直接修改源文件而是通過(guò)管道或者文件讀取內(nèi)容將其復(fù)制到稱(chēng)之為模式空間的緩沖區(qū),其指令在這個(gè)模式空間內(nèi)完成并打印到屏幕上。
語(yǔ)法格式:
上面提到定位以行尾單位,那么行暫且定義它為地址,也就是操作對(duì)象
地址的范圍有一下集中格式
n #指定唯一行號(hào)
1~2 #指定從1行開(kāi)始,間隔為2也就是
$ #指定最后一行
/正則表達(dá)式/ #匹配正則表達(dá)式的操作對(duì)象
\a正則表達(dá)式a #匹配\a和a之間的正則表達(dá)式
3,5 #匹配3-5行
1,+10 #匹配1和1后面的10行內(nèi)容
sed的使用選項(xiàng)
Sed [選項(xiàng)] [腳本指令] [輸入文件]
選項(xiàng): -n #靜默輸出,不打印模式空間的內(nèi)容,默認(rèn)情況下是自動(dòng)打印的
-e 腳本 #允許多個(gè)腳本指令被執(zhí)行
-f #從文件中讀取指令
-l #輸出的行長(zhǎng)度
-r #擴(kuò)展正則表達(dá)式
-I #直接修改源文件
指令: a (append) #追加
d (delete) #刪除
s (substitution)#替換
c #更改
y #按字符替換
p #打印
q #退出
i #插入
l #打?。@示非打印字符)
L #打?。@示打印字符)
r #讀入文件內(nèi)容
我們找一個(gè)文件,然后來(lái)操作下
例:第一行后追加“This is a example”
[root@pan-S~]# sed "1a This is a example" /opt/fstab_Mrpan
例:第6行前追加“This isa example”#注意源文件發(fā)生改變了
[root@pan-S~]# sed -i "6i This is a example" /opt/fstab_Mrpan
例:替換命令
[root@pan-S~]# sed "s/defaults/Mr.pan/g" /opt/fstab_Mrpan
[root@pan-S~]# sed -i "3s/fstab/fstab_Mr.pan/g" /opt/fstab_Mrpan
例:更改命令
[root@pan-S~]# sed "/pan/c exit" /etc/passwd | more
例:利用正則表達(dá)式
匹配包含fstab的行單位
[root@pan-S~]# sed -i "/fstab/a This is a example" /opt/fstab_Mrpan
[root@pan-S~]# sed -n "/^$/d" /opt/fstab_Mrpan
當(dāng)需要執(zhí)行多個(gè)指令時(shí)可以使用 –e –f 或者分隔符分號(hào);還可以使用分行,但是最好使用-f 文件來(lái)執(zhí)行,這樣的話(huà)便于修改,不容易出錯(cuò)。
例:刪除包含example的行,替換所有的0為1
(1)# sed -e"/example/d" -e "s/0/1/g" /opt/fstab_Mrpan
(2)# sed"/example/d;s/0/1/g" /opt/fstab_Mrpan
好了,大家可以自己操作下看看有什么變化
以上就是怎么進(jìn)行sed的使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。