Linux命令之——sed命令

編程能力:
正則表達式

    腳本編程編程

grep,sed(流編程器),awk編輯器

sed 基本用法:ide

sed:Stream EDitorspa

    行編輯器(全屏編輯器:vi)orm


sed:模式空間ip

默認不編輯原文件,僅對模式空間中的數據作處理;然後,將處理結束後的空間打印到屏幕上ci


用法:字符串

sed [OPTION]... {script-only-if-no-other-script} [input-file]...input

sed +選項+{sed 腳本}


sed [選項] 'AddressCommand' file... \對這個(這些)文件符合這個指定範圍的行實現指定命令。

-n:靜默模式 (不顯示模式空間的內容)

-i:直接修改原文件

-e SCRIPT -e SCRIPT:能夠同時執行多個腳本

-f /PATH/TO/SED_SCRIPT

    sed -f /path/to/scripts file

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


Address:


  1. StartLine,EndLine

    好比1,100

  2. /RegExp/     \正則表達式來指定的模式

    好比/^root/   \已root開始的行

  3. /pattern1/,/pattern2/   \模式1,模式2

    第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,中間的全部行。

  4. LineNumber    \行號

    $ :最後一行

  5. StartLine ,+N    \從指定的行開始,向後的N行。




Command:

    d:刪除符合條件的行;

例:

#sed '1,2d' /etc/fstab      \刪除/etc/fstab 中的1,2行

#sed '/s/d' /etc/fstab      \刪除/etc/fstab 中帶有's'的行

#sed '/^/\/d' /etc/fstab     \刪除已斜線開頭的行(\是特殊字符要用/轉義)


    p:顯示符合條件的行

例:

#sed '/^/\/d' /etc/fstab   \刪除已斜線開頭的行(\是特殊字符要用/轉義)

#sed -n'/^/\/p' /etc/fstab   \只顯示已斜線開頭的行

# sed -n '/^#/p' /etc/fstab  \打印已#開頭的行

    

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

例:# sed '/s/ a \hi' /etc/fstab    \在全部帶s的行後面追加一行 hi。

#sed '/s/a \hi. \nhello.' /etc/fstab   \在全部帶s的行後邊追加一行hi,一行hello.

 

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

    r File:將指定的文件的內容添加到指定行處。

例:

# sed '1r /etc/passwd' /etc/fstab   \在文件fstab第一行後邊添加文件passwd的內容。

    

    w File: 將地址指定的範圍內的行另存至指定的文件中

例:

 #sed '/s/w /tmp/s.txt' /etc/fstab    \將fstab文件中帶有s的行保存到tmp下的s.txt文件中


    s/pattern/string/修飾符:          \將文件中查找到的pattern替換成string(默認是隻替換每行中第一次匹配到的字符串)  修飾符 g:全局替換  i:忽略字符大小寫

 附加:s/// 能夠寫成s### 、s$$$    \分隔符能夠用特殊字符來替換

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

例:

#sed 's/s/S/' /tmp/s.txt    \將文件s.txt中的全部s替換成S

#sed 's/l..e/&r/' 引用.sh   \將文件引用.sh中已l開始e結尾的字符後邊加上r

#sed 's#l\(..e\)#L\1#g' 引用.sh \改變引用字符一部分用後向引用

相關文章
相關標籤/搜索