數(shù)據(jù)庫(kù)主機(jī)租用用戶在日常維護(hù)中怎樣做到很好的處理數(shù)據(jù)流中的數(shù)據(jù)是一個(gè)問題。而SED命令應(yīng)該如何使用呢?今天小編就來介紹一下關(guān)于數(shù)據(jù)庫(kù)主機(jī)租用Linux系統(tǒng)sed命令怎樣使用這個(gè)問題。
數(shù)據(jù)庫(kù)主機(jī)租用用戶在日常維護(hù)中怎樣做到很好的處理數(shù)據(jù)流中的數(shù)據(jù)是一個(gè)問題。而SED命令應(yīng)該如何使用呢?今天小編就來介紹一下關(guān)于數(shù)據(jù)庫(kù)主機(jī)租用Linux系統(tǒng)sed命令怎樣使用這個(gè)問題。
先來介紹一下sed的理解:sed被稱為流編輯器(stream editor),可以根據(jù)命令來處理數(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è)過程。在流編輯器處理完流中所有的數(shù)據(jù)行之后,它就會(huì)終止。
sed命令的格式為:
sed options script file
options中常用的選項(xiàng)如下所示:
-e command 將command中的命令添加到已有的命令中,也就是說當(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一起使用,只輸出被修改過的行。
script中的常用使用方式:
1. 替換文本中的指定字符,形式為:
sed s/pattern/replacement/flags'
主要用法有(注意:如果不加上-i選項(xiàng),修改的都是流中的內(nèi)容,file本身的內(nè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,并打印出修改過的行
sed -n 's/pattern/replacement/2p' file 將file的流中每行的第二個(gè)pattern替換成replacement,并打印出修改過的行(標(biāo)記符號(hào)可以多個(gè)一起使用,且順序不影響結(jié)果)
sed 's/pattern/replacement/gw outFile' file 將file的流中每行的每一個(gè)pattern替換成replacement,并將輸出保存到outFile中(w標(biāo)記必須要放在最后,如果寫作wg,標(biāo)記g將無效,并生成名為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的流的第三行修改為This 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)換,無法限定只轉(zhuǎn)換在特定地方出現(xiàn)的字符。
7. 寫入文件
sed 'w outFile' file 將file的內(nèi)容寫入到outFile中
sed '1,2w outFile' file 將file第一行到第二行的內(nèi)容寫入到outFile中
8. 從文件讀取數(shù)據(jù)($和匹配模式/word/都可以使用):
sed '3r newFile' file 將newFile的內(nèi)容添加到file的流的第三行之后。
以上就是億恩小編為各位整理的關(guān)于數(shù)據(jù)庫(kù)主機(jī)租用Linux系統(tǒng)sed命令怎樣使用。
河南億恩科技股份有限公司(mszdt.com)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國(guó)家工信部認(rèn)定的綜合電信服務(wù)運(yùn)營(yíng)商。億恩為近五十萬的用戶提供服務(wù)器托管、服務(wù)器租用、機(jī)柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:
0371-60135900
虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:
0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報(bào)電話:
0371-60135995
服務(wù)熱線:
0371-60135900