Linux中sed命令功能強大,今天我們就來詳細(xì)介紹如何在Linux中使用sed命令進行替換,具體來說分為以下幾種情況:
1)如何替換第一次搜索到的內(nèi)容;
2)如何在全文中替換所有能匹配的內(nèi)容;
3)如何替換某一行的內(nèi)容;
4)如何替換多行的內(nèi)容;
5)如何將sed替換結(jié)果保存到原文中;
6)如何同時使用多個sed替換條件;
7)如何使用正則表達(dá)式。
1、替換第一次搜索到的內(nèi)容,命令如下:
sed 's/要替換的內(nèi)容/新的內(nèi)容/' 要處理的文件
如下圖,將第一個小寫的b替換成了大寫的B。
![](/d/20211018/407a2bf90e5b2103cb10cad30261f3af.gif)
2、在全文中替換所有能匹配的內(nèi)容,命令如下:
sed 's/要替換的內(nèi)容/新的內(nèi)容/g' 要處理的文件
如下圖,將所有的小寫的b替換成了大寫的B。
![](/d/20211018/f84ad6265167f35e812a106bc581973e.gif)
3、替換某一行的內(nèi)容,命令如下:
sed '行號c 新的內(nèi)容' 要處理的文件
如下圖,將第二行內(nèi)容替換成了“new test!”
![](/d/20211018/a89d0163d957c94c62eb7921b5fd7727.gif)
4、替換多行的內(nèi)容,命令如下:
sed '起始行號,終止行號c 新的內(nèi)容' 要處理的文件
如下圖,將第二行到第六行內(nèi)容替換成了“new test!”
![](/d/20211018/d3696b478d4d87e3abc52648214d42bf.gif)
5、上述這些替換命令都只是將替換的結(jié)果顯示在屏幕上,如果想替換的結(jié)果直接保存到原文中,就只需加上-i參數(shù)。如下圖所示。
sed -i 's/要替換的內(nèi)容/新的內(nèi)容/g' 要處理的文件
![](/d/20211018/fddda61e964d5a8c9c07f38325a3c4cf.gif)
6、多個sed命令也可以用-e參數(shù)連接起來,一次性完成多個操作。如下圖,首先將小寫a替換成了大寫A,然后又將第二行內(nèi)容替換成了“new test!”
![](/d/20211018/4b70c5fa1f6d006f6b59d249a4c28a93.gif)
7、再有,sed命令中替換與被替換的部分都允許使用正則表達(dá)式。比如,以下命令將所有數(shù)字替換成了“好的”。
sed 's/[0-9]/好的/g' testFile2.txt
![](/d/20211018/ca7f6b9eb88ce883374f50ed6c9cbb53.gif)
注意:
在輸入Linux命令前,一定要將輸入法切換成英文半角符號狀態(tài)。從Windows電腦上復(fù)制命令到Linux Terminal中執(zhí)行時,也有可能遇到格式不正確造成的命令執(zhí)行錯誤,這時建議手動重新輸入字符,如果覺得輸入麻煩,可以只刪除命令中的空格和最后一個字符后,重新輸入空格和最后一個字符。
以上就是sed鎖定某一行數(shù)據(jù)進行替換的技巧,希望大家喜歡,請繼續(xù)關(guān)注腳本之家。
相關(guān)推薦:
linux怎么使用命令返回上一級目錄?
linux系統(tǒng)怎么使用alias創(chuàng)建命令別名?
linux系統(tǒng)怎么使用vmstat命令顯示虛擬內(nèi)存狀態(tài)?