方法:1、設置參數“c”,c的后面可以接字串,這些字串可以替換指定的行,語法為“ sed ‘行數c 替換后內容’”;2、設置參數“s”,可以直接進行替換工作,語法為“sed ‘s/要被取代的字串/新的字串/g’”。
本教程操作環境:linux7.3系統、Dell G3電腦。
linux中sed命令怎么實現替換
Linux sed 命令是利用腳本來處理文本文件。
sed 可依照腳本的指令來處理、編輯文本文件。
Sed 主要用來自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
語法
sed?[-hnV][-e<script>][-f<script文件>][文本文件]</script>
參數說明:
-
-e<script>或–expression=<script> 以選項中指定的script來處理輸入的文本文件。</script>
-
-f<script>或–file=<script文件> 以選項中指定的script文件來處理輸入的文本文件。</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視頻教程》