sed 命令使用(1)

2021-09-02 17:42:14 字數 2522 閱讀 4707

sed 簡單說明:sed是流編輯器。流編輯器用於執行基本文字對輸入流(檔案或管道的輸入)的轉換。雖然在某些方面類似於允許指令碼編輯的編輯器。

例項1:用sed取出指定行

[root@localhost scripts]# cat color.sh #原始檔

#!/bin/sh

red_color='\e[1;31m'

green_color='\e[1;32m'

yellow_color='\e[1;33m'

blue_color='\e[1;34m'

pink='\e[1;35m'

res='\e[0m'

echo -e "$red_color ==wer== $res"

[root@localhost scripts]# sed  -n '2,3p' color.sh

red_color='\e[1;31m'

green_color='\e[1;32m'

[root@localhost scripts]#

[root@localhost scripts]#

root@localhost scripts]# sed -n '/res/p' color.sh 

res='\e[0m'

echo -e "$red_color ==wer== $res"

[root@localhost scripts]#

說明:-n :取消預設輸出;輸出指定的;'2,3p'輸出2到3行p是列印;指定內容輸出它所在行

如不加 -n 輸出結果是:

[root@localhost scripts]# sed   '2,3p' color.sh

#!/bin/sh

red_color='\e[1;31m'

**red_color='\e[1;31m'

green_color='\e[1;32m'**

green_color='\e[1;32m'

yellow_color='\e[1;33m'

blue_color='\e[1;34m'

pink='\e[1;35m'

res='\e[0m'

echo -e "$red_color ==wer== $res"

2:刪除指定內容

[root@localhost scripts]# sed  '2,3d' color.sh #刪除2-3的內容;

#!/bin/sh

yellow_color='\e[1;33m'

blue_color='\e[1;34m'

pink='\e[1;35m'

res='\e[0m'

echo -e "$red_color ==wer== $res"

[root@localhost scripts]# sed  '/yellow_color/d' color.sh #刪除指定內容行

#!/bin/sh

red_color='\e[1;31m'

green_color='\e[1;32m'

blue_color='\e[1;34m'

pink='\e[1;35m'

res='\e[0m'

echo -e "$red_color ==wer== $res"

[root@localhost scripts]#

說明:d:是刪除;但不是真正的刪除了檔案裡的內容;只是在終端不列印出來;加上 -i 才能修改檔案的內容如:sed -i '/yellow_color/d' color.sh;真正要修改檔案時才用

3:替換指定內容

替換格式 sed 's#源資料#替換資料#g' 檔名 或 sed 's/源資料/替換資料/g' 檔名;s:是取代;g:是全域性替換

[root@localhost scripts]# sed  's#res#123#g' color.sh 

#!/bin/sh

red_color='\e[1;31m'

green_color='\e[1;32m'

yellow_color='\e[1;33m'

blue_color='\e[1;34m'

pink='\e[1;35m'

123='\e[0m'

echo -e "$red_color ==wer== $123"

[root@localhost scripts]#

4:用sed 替換得到ip

」.「 點代表且只能代表任意乙個字元(不匹配空行)

」*「 星代表重複之前的字元或文字0個或多個,之前的文字或字元連續0次或多

」.*「 點星代表任意多個字元

sed 's#.*inet ##g' 把包含ine前的內容全部替換空;

sed 's# netmask.*##g' 把包含netmask以後的內容全部替換空

[root@localhost scripts]# ifconfig enp0s3|grep 'inet '|sed 's#.*inet ##g'|sed 's# netmask.*##g'

192.168.0.3

[root@localhost scripts]#

sed命令使用

sed命令使用 常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操...

sed命令使用

常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操作命令 sed ...

linux命令(1) sed命令

例項一 config file檔案內容如下 例項二 假設配置檔案yj.conf含有test no sed i test s test aaabbb home test yj.conf 結果 修改前 test no aaabbb no 修改後 sed i test1 d home test yj.co...