sed的用法以及練習

sed命令: 

   sed是主要是以行爲單位進行處理,可以將數據行進行替換、刪除、新增、選取等的文件處理工具。

常用選項:

sed [options] 'AddressCommand' file ...

-n: 靜默模式,不再默認顯示模式空間中的內容,只顯示被處理的行。

-i: 直接修改原文件。(慎用)

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

-f /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts  file

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

常用命令:
        a   ∶新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
        c   ∶取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!
        d   ∶刪除,因爲是刪除啊,所以 d 後面通常不接任何東西;
        i   ∶插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
        p  ∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~
        s  ∶取代,可以直接進行取代的工作,通常這個 s 的動作可以搭配正規表示法!

1、刪除/etc/grub.conf文件中行首的空白符;

    sed -r 's/[[:space:]]//g' /etc/grub.conf

2、替換/etc/inittab文件中"id:3:initdefault:"一行中的數字爲5;

    sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab,其中\1和\2爲地址空間引用;

3、刪除/etc/inittab文件中的空白行;

    sed '/^$/d' /etc/inittab

4、刪除/etc/inittab文件中開頭的#號; 

    sed 's/^\#//g' /etc/inittab

5、刪除某文件中開頭的#號及後面的空白字符,但要求#號後面必須有空白字符;

    sed 's/^\#[[::space:]]+//g' /etc/inittab

6、刪除某文件中以空白字符後面跟#類的行中的開頭的空白字符及#

    sed -r 's@^[[:space:]]+#@@g' /etc/inittab

7、取出一個文件路徑的目錄名稱;

    echo '/etc/rc.d' | sed -r 's@^(/.*/)[^/]+/?@\1@g'

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