方法:1、設定參數“c”,c的後面可以接字符串,這些字符串可以替換指定的行,語法為“ sed '行數c 替換後內容'”;2、設置參數“s”,可以直接進行替換工作,語法為“sed 's/要被取代的字符串/新的字符串/g'”。
本教學操作環境:linux7.3系統、Dell G3電腦。
Linux sed 指令是利用腳本來處理文字檔。
sed 可依照腳本的指令處理、編輯文字檔。
Sed 主要用來自動編輯一個或多個檔案、簡化對檔案的重複操作、編寫轉換程式等。
語法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
參數說明:
-e3f1c4e4b6b16bbbd69b2ee476dc4f83a或--expression=3f1c4e4b6b16bbbd69b2ee476dc4f83a 以選項中指定的script來處理輸入的文字檔。
-f944cf76c09264c86a8da86e0e37458cf或--file=944cf76c09264c86a8da86e0e37458cf 以選項中指定的script檔來處理輸入的文字檔。
-h或--help 顯示幫助。
-n或--quiet或--silent 僅顯示script處理後的結果。
-V或--version 顯示版本資訊。
動作說明:
a :新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
c :取代, c 的後面可以接字符串,這些字串可以取代n1,n2 之間的行!
d :刪除,因為是刪除啊,所以d 後面通常不接任何東東;
i :插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :列印,也即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運行~
s :取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!
範例如下:
將第2-5行的內容取代成為『No 2-5 number』呢?
[root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number' 1 root:x:0:0:root:/root:/bin/bash No 2-5 number 6 sync:x:5:0:sync:/sbin:/bin/sync .....(后面省略).....
除了整行的處理模式之外, sed 還可以用行為單位進行部分資料的搜尋並取代。基本上 sed 的搜尋與替代的與 vi 相當的類似!他有點像這樣:
sed 's/要被取代的字串/新的字串/g'
先觀察原始訊息,利用 /sbin/ifconfig 查詢 IP
[root@www ~]# /sbin/ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 .....(以下省略).....
本機的ip是192.168.1.100。
將IP 前面的部分刪除
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
接下來則是刪除後續的部分,亦即:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
# #將IP 後面的部分予以刪除
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g' 192.168.1.100
相關推薦:《Linux影片教學》
以上是linux中sed指令怎麼實現替換的詳細內容。更多資訊請關注PHP中文網其他相關文章!