sed的應用

sed的應用正則表達式

1、sed命令(流編輯器)

sed編輯器逐行處理文件(或輸入),並將結果發送到屏幕。bash

sed [-n] 'AddressCommand' file ..
-n  不打印;sed不寫編輯行到標準輸出,缺省爲打印全部行(編輯和未編輯)。p命令能夠用來打印編輯行。
-f  若是正在調用sed腳本文件,使用此選項。此選項通知sed一個腳本文件支持全部的sed命令.
例如:sed -f myscript.sed input_file,這裏myscript . sed即爲支持sed命令的文件。 -c 下一命令是編輯命令。使用多項編輯時加入此選項。若是隻用到一條sed命令,此選項無用,但指定它也沒有關係。 -i 編輯原文件(此選項慎用,若是使用則原文件就會被修改,沒法恢復)。
-r 表示使用擴展正則表達式

sed由Adress和Command組成編輯器

2、Address(用於指定處理數)

一、指定行數量spa

     如:sed -n "1,4p" /etc/passwd   1到4行顯示code

二、指定的某一行blog

      如:ip

        開頭:sed -n  "1" /etc/passwd 字符串

        結尾:sed -n "$p" /etc/passwdinput

三、開始行,+Nstring

      顯示從開始行,向後的N行

     如:

           sed -n "1,+2p" /etc/passwd  顯示第1行的後2行

四、/模式(正則表達式)/:用來過濾特定的行

   如:sed -n "/^root/p" /etc/passwd

五、/模式1/,/模式2/

第一次被模式1匹配到的行開始,到第一次被模式2匹配到的行結束,這中間的全部行。

如:sed -n "/\/bin\/bash$/p" /etc/passwd

3、Command

      p:顯示符合條件的行;

      d:刪除符合條件的行;

      a \string :在符合條件的行後面添加;

              \n:用於換行

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

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

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

      s/pattern/string/修飾符:查找並替換,默認只替換每行中第一次被模式匹配到的字符串。若是想替換所有加修飾符:

                                    g:全局替換

                                    i:忽略字符大小寫

        如;sed "s/\//#/g" /etc/fstab 把全部的/替換成#號

       s///:能夠不用/來做爲分隔,能夠是s***,s###

            如:sed "s*\/*#*g" /etc/fstab

      例子:若有一文件a內容爲: hello  like

                                       haw a you ,love                    

       自身引用(爲串加上字符):

                 使用&:引用模式匹配的整個串

                  l..e  :  like --->liker

                            love --->lover

                 語句:sed "s#l..e#&r#g" a

       後項引用(修改串):

                 l..e  :  like -->Like

                           love --> Love

                 語句:sed "s#l(..e)#L\1#g" a

相關文章
相關標籤/搜索