溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么進(jìn)行sed的使用

發(fā)布時(shí)間:2021-11-10 18:35:10 來(lái)源:億速云 閱讀:162 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)怎么進(jìn)行sed的使用,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

Sed默認(rèn)不直接修改源文件而是通過(guò)管道或者文件讀取內(nèi)容將其復(fù)制到稱之為模式空間的緩沖區(qū),其指令在這個(gè)模式空間內(nèi)完成并打印到屏幕上。

語(yǔ)法格式:

       上面提到定位以行尾單位,那么行暫且定義它為地址,也就是操作對(duì)象

地址的范圍有一下集中格式

         n                             #指定唯一行號(hào)

 1~2                          #指定從1行開始,間隔為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í)行,這樣的話便于修改,不容易出錯(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)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sed
AI