3案例3:sed多行文本處理
3.1問題
本案例要求使用sed工具來完成下列任務操作
- 修改主機名配置文件
- 修改hosts文件,添加兩條映射記錄:192.168.4.5與svr5.tarena.com、svr5,還有119.75.217.56與www.baidu.com
3.2方案
#sed [選項] '條件指令' 文件..
sed工具的多行文本處理操作:
- i:在指定的行之前插入文本
- a:在指定的行之後追加文本
- c:替換指定的行
3.3步驟
基本語法格式案例:
注意:系統默認沒有a.txt文件,需要自己創建一個測試文件!!!
[root@svr5 ~]# sed '2a XX' a.txt //在第二行後面,追加XX
[root@svr5 ~]# sed '2i XX' a.txt //在第二行前面,插入XX
[root@svr5 ~]# sed '2c XX' a.txt //將第二行替換爲XX
實現此案例需要按照如下步驟進行。
步驟一:修改主機名配置文件
1)確認修改前的配置
[root@svr5 ~]# cat /etc/hostname
svr5.tarena.com
2)使用sed修改主機名配置所在行的內容(c整行替換)
[root@svr5 ~]# sed '1c mysvr.tarena.com' /etc/hostname
步驟二:修改hosts文件,添加新的記錄
1)確認修改前的配置
[root@svr5 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2)使用sed修改hosts文件,添加兩行新記錄(a追加)
[root@svr5 ~]# sed -i '$a 192.168.4.5 svr5.tarena.com svr5' /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.5 svr5.tarena.com svr5