sed命令

    sed命令是流編輯器。

工作流程是:每次將相應的行==》模式空間(內存中)==》模式匹配在處理==》將模式空間裏的內容輸出到屏幕。

注:sed命令默認不處理原數據,而是處理原數據的副本。


    用法

        格式:sed ‘AddressCommand’ file

        對指定文件中符合Address(地址篩選的行)進行Command(命令處理)

        

        Address支持的用法:

            1,起始行,結束行。例‘1,,100’(1到100行)

            2,/正則匹配/ 支持正則模式匹配。裏‘/^root/’(以root爲行首的行)

            3,/正則匹配1/,/正則匹配2/ 表示被模1式匹配到的行開始到被模式2匹配到的行

            4,行號 精確匹配到某行,$表示最後一行。例‘1’(第一行)

            5,起始行,+n 從起始行開始,到之後的N行

        

        Command用法:

            d:刪除符合條件的行。 例 sed '1,2d' /etc/passwd(刪除/etc/passwd中的第一到第二行)                                sed '/^root/d' /etc/passwd(刪除/etc/passwd中root爲行首的行)                                sed '/^\//d' /etc/passwd(刪除etc/passwd中/開頭的行,\爲轉意)             p:顯示符合條件的行。例 sed '/^\//p' /etc/passwd(顯示etc/passwd中/開頭的行)

            a(apend) /string:在指定的行後追加字符串string新行,\n表示換行

            i(insert) /string:在指定的前插入字符串string新行,\n表示換行

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

            w file:將指定的範圍內的內容另存(會保存)到指定的文件中

            s 查找並替換:將匹配到的內容進行替換

               用法 sed 's/查找內容(支持正則)/替換內容(字符串,不支持正則)/修飾符'file 。在每行中默認只替換在該行中第一次匹配到的內容。 

               修飾符:g 全局替換。i 忽略大小寫。

                注:在s命令中,只要三個分割符一樣,大部分符號都可以作爲分隔符,這樣可以在匹配衝突時換分隔符避免使用轉移符

                例:sed 's#\(l..e\)#\1r#g' 文件名。或 sed 's#l..e#$r#g' 文件名

            $:爲引用模式匹配的所有內容。

            $與後向引用的差別:只引用匹配內容中的一部分內容是,只能用後向引用。

            例: sed 's#l\(..e\)#L\1#g' 文件名



        sed命令選項:

            -h:禁默模式,不在顯示模式空間的內容

            -i:直接修改原文件

            -e:同時執行多個腳本 -e 地址命令 -e 地址命令 ...

            -f 指定文件:sed -f /path/scripts file 表示腳本里的內容出來文件

            -r:支持擴展正則

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