sed解析和用例(馬哥視頻筆記)

sed(流編輯器)

sed基本用法:

sed:Stream EDitor

     行編輯器(另一種:全屏編輯器:vi、vim)

sed:模式空間

        sed默認部編輯源文件,僅對模式空間中的數據做處理;而後將模式空間打印到屏幕(默認朱行讀取)

sed 'AddressCommand'  file ...

對這個或者這種(file)文件當中的,符合這個地址指定範圍(Address)內的行 實現執行以下編輯命令(Command)。

Address:

1、StartLine,Endline

     比如1,100

     $:最後一行

     $-1  倒數第二行

2、/RegExp/

     /^root/

3 、/pattern1/,/pattern2/

      第一次被pattern1匹配到的行開始,至第一行被pattern2匹配到的行結束,這中間的所有行

4、LineNumber

      指定的行

5、StartLine,+N

      從StartLine開始,向後的N行;

Command:

      d:刪除符合條件的行;

      p:顯示符合條件的行;注意,直接使用p會顯示兩次,一次是符合條件的內容,一次是顯示模式空間;需要加-n

以下d的例子把d改爲p,sed後面加個

 -n

,就只顯示需要打印的內容

例如:      sed -n '/^\//p' /etc/fatab


-i:直接修改原文件

-e: SCRIPT -e SCRIPT:可以同時執行多個腳本


-f  /PATH/TO/SED_SCRIPT

    sed -f /path/to/scripts file   把某個路徑下的腳本一個個運用到file裏


-r:表示使用擴展正則表達式



      a \string:在指定的航後面追加新行,內容爲"string"(不包括斜槓)

          sed '/^\//a \hhhhh' /etc/fatab

        加兩行:

          sed '/^\//a \hhhhh\n\hhhhh' /etc/fatab(注意\n爲換行號)


     i \string:在指定的航前面追加新行,內容爲"string"(不包括斜槓)


     r FILE:將指定的文件的內容添加到符合條件的行處

sed '2r /etc/issue' /etc/fatab

sed '1,2r /etc/issue' /etc/fatab  一二行添加


     w FILE:將指定範圍內的內容內存至指定的文件中

sed '/oot/w /tmp/oot.txt' /etc/fatab

    s///:查找並替換,默認只替換每一行中第一次被匹配到的字符串

   s/pattern/string/(修飾符[可選]):

    加修飾符: 

    g:全局替換   

    i:查找時忽略字符大小寫

   s///也可以s###或s@@@只需要這三個符號一樣,如果使用@@@或者###,則/不需要用轉義字符表示,如:'s@/@#@g'   

  


1、sed 's/oot/OOT/' etc/fstab   :每一行的oot更換成OOT

2、sed '1,2s/oot/OOT/' etc/fstab   :第一二行的oot更換成OOT

3、sed 's/^\//#/' etc/fstab   :每一行行首的/更換成#

4、sed 's/\//#/' etc/fstab   :每一行的/更換成#

5、sed '[email protected]@&r@g' sed.txt

&引用模式匹配到的整個串

原本內容:

hello, like

hi, my love

後來:

hello,liker

hi,my lover

還可以 使用後向引用:  

sed 's@\(l..e\)@\1r@g' sed.txt

例子1:刪除符合條件的行:

把 /etc/fstab的1、2行刪除

sed '1,2d' /etc/fstab

例子2:刪除第3行到倒數第二行(暫時去掉-1):

sed '3,$-1d' /etc/fstab

例子3:只要行中包含oot就給予刪除:(使用模式,過濾特定的行)

sed '/oot/d' /etc/fstab

例子4:

sed '3,$+1d' /etc/fstab

例子5:

sed '1,1+2d' /etc/fatab

sed '2d' /etc/fatab

例子6:刪除以斜線開頭的行

sed '/^\//d' /etc/fatab


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