sed 命令使用(2)

2021-09-02 17:43:17 字數 1556 閱讀 5754

1、sed 命令的後項要引用取ip

[root@localhost scripts]# ifconfig enp0s3|grep 'inet '|sed -r 's#.*inet (.*) netmask.*$#\1#g'

192.168.0.3

[root@localhost scripts]#

[root@localhost scripts]# ifconfig enp0s3

enp0s3: flags=4163mtu 1500

inet

192.168.0.3

netmask 255.255.255.0  broadcast 192.168.0.255

.*inet              

(.*)    \1 

netmask.*$

sed -r 's#.*inet (.*) netmask.*$#\1#g;上述顏色相同的代表內容統一;(.*)括號的內容就是選定的內容用 \1表示;若有兩個從左向右的方向排序\1 \2……

-r 支援正規表示式

2、sed 查詢內容並執行命令

查詢/etc/passwd,找到root對應的行,執行後面花括號中的一組命令,每個命令之間用分號分隔,這裡把bash替換為blueshell,再輸出這行:

[root@localhost scripts]# sed -n '/root/' /etc/passwd

root:x:0:0:root:/root:/bin/blueshell

operator:x:11:0:operator:/root:/sbin/nologin

[root@localhost scripts]#

3、sed 命令列印行

[root@localhost scripts]# sed   "=" color.sh

1#!/bin/sh

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

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

4yellow_color='\e[1;33m'

54、sed 修改檔案加備份加

-i:後跟備份成的檔名;注意:如果sed 跟多個引數進行檔案備份 -i必須放到引數位的最後如果放到前面檔案會備份成這樣:

[root@localhost scripts]# sed -ir.2016.bak 's#^sed#s1#g' b.log #失敗的案例 

[root@localhost scripts]# ls

b.log       b.logr.2016.bak

[root@localhost scripts]# cat b.log.2018.bak

11root@localhost scripts]# sed -i.2018.bak 's#11#sedcmd#g' b.log

[root@localhost scripts]# ls b.*

b.log  b.log.2018.bak

[root@localhost scripts]# cat b.log.2018.bak

11[root@localhost scripts]# cat b.log

sedcmd

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 ...

sed命令學習(2)

table of contents 1.sed簡介 2.定址 3.sed命令 4.選項 5.元字符集 6.例項 7.指令碼 1.sed簡介 2.定址 可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行...