數(shù)據(jù)庫(kù)服務(wù)器租用Linux系統(tǒng)sed命令的使用方法是怎樣的?
發(fā)布時(shí)間:2018-12-10 點(diǎn)擊數(shù):7061
數(shù)據(jù)庫(kù)服務(wù)器租用的用戶也是越來(lái)越多了,大家也知道數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)是非常重要的,怎么進(jìn)行處理是個(gè)難題,然而SED命令的出現(xiàn)無(wú)非是個(gè)福音,數(shù)據(jù)庫(kù)服務(wù)器租用Linux系統(tǒng)sed命令的使用方法是怎樣的?

sed被稱為流編輯器(stream editor),可以根據(jù)命令來(lái)處理數(shù)據(jù)流中的數(shù)據(jù)。這些命令要么從命令行中輸入,要么存儲(chǔ)在一個(gè)命令文本文件中。sed會(huì)執(zhí)行一下操作:
(1)一次從輸入中讀取一行數(shù)據(jù)
(2)根據(jù)所提供的編輯器命令匹配數(shù)據(jù)
(3)按照命令修改流中的數(shù)據(jù)
(4)將新的數(shù)據(jù)輸出到STDOUT
在流編輯器將所有命令與一行數(shù)據(jù)匹配完畢后,它會(huì)讀取下一行數(shù)據(jù)并重復(fù)這個(gè)過(guò)程。在流編輯器處理完流中所有的數(shù)據(jù)行之后,它就會(huì)終止。
sed命令的格式為:
sed options script file
options中常用的選項(xiàng)如下所示:
-e command 將command中的命令添加到已有的命令中,也就是說(shuō)當(dāng)sed中使用多個(gè)命令時(shí)要使用這個(gè)選項(xiàng)。
-f file 將file中制定的命令添加到已有的命令中,注意每一個(gè)命令都要在獨(dú)立的一行里。
-i 直接修改源文件。
-n 通常情況下,當(dāng)所有命令執(zhí)行完后輸出會(huì)顯示在STDOUT中,-n選項(xiàng)會(huì)禁止輸出。通常和替換標(biāo)記p一起使用,只輸出被修改過(guò)的行。
script中的常用使用方式:
1. 替換文本中的指定字符,形式為:
sed s/pattern/replacement/flags'
主要用法有(注意:如果不加上-i選項(xiàng),修改的都是流中的內(nèi)容,file本身的內(nèi)容沒(méi)有變化):
sed 's/pattern/replacement/' file 將file的流中每行的第一個(gè)pattern替換成replacement
sed 's/pattern/replacement/g' file 將file的流中每行的每一個(gè)pattern替換成replacement
sed 's/pattern/replacement/2' file 將file的流中每行的第二個(gè)pattern替換成replacement
sed -n 's/pattern/replacement/p' file 將file的流中每行的第一個(gè)pattern替換成replacement,并打印出修改過(guò)的行
sed -n 's/pattern/replacement/2p' file 將file的流中每行的第二個(gè)pattern替換成replacement,并打印出修改過(guò)的行(標(biāo)記符號(hào)可以多個(gè)一起使用,且順序不影響結(jié)果)
sed 's/pattern/replacement/gw outFile' file 將file的流中每行的每一個(gè)pattern替換成replacement,并將輸出保存到outFile中(w標(biāo)記必須要放在最后,如果寫(xiě)作wg,標(biāo)記g將無(wú)效,并生成名為g outFile的輸出文件)
sed '2s/pattern/replacement/' file 將file的流中第二行的第一個(gè)pattern替換成replacement
sed '2,4s/pattern/replacement/' file 將file的流中第二行到第四行的第一個(gè)pattern替換成replacement
sed '2,$s/pattern/replacement/' file 將file的流中第二行到最后一行的第一個(gè)pattern替換成replacement
sed '/word/s/pattern/replacement/' file 將file的流中含有word的行中的第一個(gè)pattern替換成replacement,可以使用正則表達(dá)式
2. 刪除文本
sed 'd' file 將file的流中所有行全部刪除
sed '2d' file 將file的流中的第二行刪除
sed '2,4d' file 將file的流中的第二行到第四行刪除
sed '2,$d' file 將file的流中的第二行到最后一行刪除
sed '/word/d' file 將file的流中含有word的行刪除
3. 插入和附加文本
(1)插入(insert)命令(i)會(huì)在指定行前增加一個(gè)新行。
(2)附加(append)命令(a)會(huì)在指定行后增加一個(gè)新行。
格式為:
sed '[address]command\new line'
主要用法為($和匹配模式/word/都可以使用):
sed '3i\This a an inserted line.' file 將一個(gè)新行插入到file的流的第三行前
sed '3a\This a an inserted line.' file 將一個(gè)新行插入到file的流的第三行后
4. 修改行($和匹配模式/word/都可以使用):
sed '3c\This is a changed line.' file 將file的流的第三行修改為T(mén)his is a changed line.
5. 轉(zhuǎn)換命令
轉(zhuǎn)換(transform)命令(y)是唯一可以處理單個(gè)字符的sed命令,格式如下:
sed '[address]y/inchars/outchars'
轉(zhuǎn)換命令會(huì)對(duì)inchars和outchars做一對(duì)一映射,inchars的第一個(gè)字符會(huì)被轉(zhuǎn)換為outchars的第一個(gè)字符,inchars的第二個(gè)字符會(huì)被轉(zhuǎn)換為outchars的第二個(gè)字符。如果inchars和outchars的長(zhǎng)度不同,sed編輯器會(huì)產(chǎn)生一條錯(cuò)誤消息:
sed: 1: "y/abc/de/": transform strings are not the same length
舉例如下:
$ echo "1 2 3 1 2 3 2 3 4 5 6" | sed 'y/123/456/'
4 5 6 4 5 6 5 6 4 5 6
可以看出,轉(zhuǎn)換命令是一個(gè)全局命令,會(huì)在文本行中找到的所有指定字符進(jìn)行轉(zhuǎn)換,無(wú)法限定只轉(zhuǎn)換在特定地方出現(xiàn)的字符。
7. 寫(xiě)入文件
sed 'w outFile' file 將file的內(nèi)容寫(xiě)入到outFile中
sed '1,2w outFile' file 將file第一行到第二行的內(nèi)容寫(xiě)入到outFile中
8. 從文件讀取數(shù)據(jù)($和匹配模式/word/都可以使用):

sed被稱為流編輯器(stream editor),可以根據(jù)命令來(lái)處理數(shù)據(jù)流中的數(shù)據(jù)。這些命令要么從命令行中輸入,要么存儲(chǔ)在一個(gè)命令文本文件中。sed會(huì)執(zhí)行一下操作:
(1)一次從輸入中讀取一行數(shù)據(jù)
(2)根據(jù)所提供的編輯器命令匹配數(shù)據(jù)
(3)按照命令修改流中的數(shù)據(jù)
(4)將新的數(shù)據(jù)輸出到STDOUT
在流編輯器將所有命令與一行數(shù)據(jù)匹配完畢后,它會(huì)讀取下一行數(shù)據(jù)并重復(fù)這個(gè)過(guò)程。在流編輯器處理完流中所有的數(shù)據(jù)行之后,它就會(huì)終止。
sed命令的格式為:
sed options script file
options中常用的選項(xiàng)如下所示:
-e command 將command中的命令添加到已有的命令中,也就是說(shuō)當(dāng)sed中使用多個(gè)命令時(shí)要使用這個(gè)選項(xiàng)。
-f file 將file中制定的命令添加到已有的命令中,注意每一個(gè)命令都要在獨(dú)立的一行里。
-i 直接修改源文件。
-n 通常情況下,當(dāng)所有命令執(zhí)行完后輸出會(huì)顯示在STDOUT中,-n選項(xiàng)會(huì)禁止輸出。通常和替換標(biāo)記p一起使用,只輸出被修改過(guò)的行。
script中的常用使用方式:
1. 替換文本中的指定字符,形式為:
sed s/pattern/replacement/flags'
主要用法有(注意:如果不加上-i選項(xiàng),修改的都是流中的內(nèi)容,file本身的內(nèi)容沒(méi)有變化):
sed 's/pattern/replacement/' file 將file的流中每行的第一個(gè)pattern替換成replacement
sed 's/pattern/replacement/g' file 將file的流中每行的每一個(gè)pattern替換成replacement
sed 's/pattern/replacement/2' file 將file的流中每行的第二個(gè)pattern替換成replacement
sed -n 's/pattern/replacement/p' file 將file的流中每行的第一個(gè)pattern替換成replacement,并打印出修改過(guò)的行
sed -n 's/pattern/replacement/2p' file 將file的流中每行的第二個(gè)pattern替換成replacement,并打印出修改過(guò)的行(標(biāo)記符號(hào)可以多個(gè)一起使用,且順序不影響結(jié)果)
sed 's/pattern/replacement/gw outFile' file 將file的流中每行的每一個(gè)pattern替換成replacement,并將輸出保存到outFile中(w標(biāo)記必須要放在最后,如果寫(xiě)作wg,標(biāo)記g將無(wú)效,并生成名為g outFile的輸出文件)
sed '2s/pattern/replacement/' file 將file的流中第二行的第一個(gè)pattern替換成replacement
sed '2,4s/pattern/replacement/' file 將file的流中第二行到第四行的第一個(gè)pattern替換成replacement
sed '2,$s/pattern/replacement/' file 將file的流中第二行到最后一行的第一個(gè)pattern替換成replacement
sed '/word/s/pattern/replacement/' file 將file的流中含有word的行中的第一個(gè)pattern替換成replacement,可以使用正則表達(dá)式
2. 刪除文本
sed 'd' file 將file的流中所有行全部刪除
sed '2d' file 將file的流中的第二行刪除
sed '2,4d' file 將file的流中的第二行到第四行刪除
sed '2,$d' file 將file的流中的第二行到最后一行刪除
sed '/word/d' file 將file的流中含有word的行刪除
3. 插入和附加文本
(1)插入(insert)命令(i)會(huì)在指定行前增加一個(gè)新行。
(2)附加(append)命令(a)會(huì)在指定行后增加一個(gè)新行。
格式為:
sed '[address]command\new line'
主要用法為($和匹配模式/word/都可以使用):
sed '3i\This a an inserted line.' file 將一個(gè)新行插入到file的流的第三行前
sed '3a\This a an inserted line.' file 將一個(gè)新行插入到file的流的第三行后
4. 修改行($和匹配模式/word/都可以使用):
sed '3c\This is a changed line.' file 將file的流的第三行修改為T(mén)his is a changed line.
5. 轉(zhuǎn)換命令
轉(zhuǎn)換(transform)命令(y)是唯一可以處理單個(gè)字符的sed命令,格式如下:
sed '[address]y/inchars/outchars'
轉(zhuǎn)換命令會(huì)對(duì)inchars和outchars做一對(duì)一映射,inchars的第一個(gè)字符會(huì)被轉(zhuǎn)換為outchars的第一個(gè)字符,inchars的第二個(gè)字符會(huì)被轉(zhuǎn)換為outchars的第二個(gè)字符。如果inchars和outchars的長(zhǎng)度不同,sed編輯器會(huì)產(chǎn)生一條錯(cuò)誤消息:
sed: 1: "y/abc/de/": transform strings are not the same length
舉例如下:
$ echo "1 2 3 1 2 3 2 3 4 5 6" | sed 'y/123/456/'
4 5 6 4 5 6 5 6 4 5 6
可以看出,轉(zhuǎn)換命令是一個(gè)全局命令,會(huì)在文本行中找到的所有指定字符進(jìn)行轉(zhuǎn)換,無(wú)法限定只轉(zhuǎn)換在特定地方出現(xiàn)的字符。
7. 寫(xiě)入文件
sed 'w outFile' file 將file的內(nèi)容寫(xiě)入到outFile中
sed '1,2w outFile' file 將file第一行到第二行的內(nèi)容寫(xiě)入到outFile中
8. 從文件讀取數(shù)據(jù)($和匹配模式/word/都可以使用):
sed '3r newFile' file 將newFile的內(nèi)容添加到file的流的第三行之后。
以上就是云網(wǎng)時(shí)代小編特意查閱資料整理出來(lái)的數(shù)據(jù)庫(kù)服務(wù)器租用Linux系統(tǒng)sed命令的使用方法,云網(wǎng)時(shí)代是深圳有著多年經(jīng)營(yíng)管理經(jīng)驗(yàn)的IDC服務(wù)商,機(jī)房設(shè)備設(shè)施齊全,并且有專業(yè)技術(shù)管理人員提供7x24小時(shí)服務(wù),云網(wǎng)時(shí)代主要提供深圳服務(wù)器托管,廣州服務(wù)器租用,廣州服務(wù)器托管,機(jī)柜租用等,歡迎咨詢客服了解更多詳情。