linux之sed基礎命令詳解

sed (Stream  EDitor)是一個強大的字符流編輯器,輸入一般是來自文件,默認情況下不編輯原文件,僅對模式空間中的數據作處理;而後,將模式空間打印到屏幕顯示

sed基礎用法

sed [options]'AddressCommond' file ...

[options]

  -n:靜默模式,不再默認顯示模式空間的內容

-i:直接修改原文件

-f:指定需執行的腳本文件,一般在腳本文件裏編輯匹配模式

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

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

Address

1. startline,endline

      1,100

2./RegExp/

       /^root/

   3./pattern1/,/pattern2/

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

   4.LineNumber

     表示指定的行

   $:表示最後一行  $-1:表示倒數第二行

   5.Startline, +N

    從Startline開始,向後的N行,共N+1

Command:

   d: 刪除指定的行

     sed '1,2d' /mnt/passwd

     sed '4,$-1d' /mnt/passwd

     sed '/nologin/d' /mnt/passwd

     sed '1,+3d' /mnt/passwd

   p:顯示符合條件的行

     sed '/^\//p' /mnt/passwd

   a:\"string":在指定的行後面追加新行,內容爲“string

     sed '2a\hello linux' /mnt/passwd

   c:\'string' :用新文本替換指定行文本  

     sed '1c\redhat' /mnt/passwd

   i:\string :在指定的行前面添加新行,內容爲"string"   

     sed '2i\hello linux' /mnt/passwd

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

     sed '1,2r /etc/group' /mnt/passwd

     sed '$r /mnt/tuantuan.sh' /mnt/yy.sh >> /mnt/kiosk.sh (合併文件)

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

     sed '/nologin/w /mnt/123' /mnt/passwd

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

     s/pattern/string/修飾符

     sed 's/nologin/NOLOGIN/' /mnt/passwd

     sed 's/^\//#/' /mnt/kiosk.sh

     sed -r 's/^[[:space:]]+//' /mnt/passwd  ##刪除行首的空白符

     sed 's/\(wer:\)[0-9]\(:gtrh\)/\17\2/g' /mnt/456 ##wei:3:gtrh行中數字替換成7

     sed 's/^#+//g' /mnt/yy.sh  ##刪除/mnt/yy.sh文件中開頭的#

     sed -r 's/^#[[:space:]]+//g' ##刪除開頭的#號及後面的空白字符

     sed -r 's/^[[:space:]]+#+//g' ##刪除以空白字符後跟#號的空白字符及#

          g:全局變量

          i:忽略字符大小寫

         

        sed 's/b..h/&r/g' /mnt/passwd

        sed 's/\(b..h\)/\1r/g' /mnt/passwd

         sed 's/b\(..h\)/B\1/g' /mnt/passwd

s/// 格式也可用 s###、s@@@ 代替

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