sed是文本處理工具,讀取文本內(nèi)容,根據(jù)指定的條件進(jìn)行處理如刪除、替換、添加等
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都高空作業(yè)車租賃小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站定制營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺(jué)設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開(kāi)發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。處理時(shí),把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒(méi)有 改變,除非你使用重定向存儲(chǔ)輸出。
Sed 主要用來(lái)自動(dòng)編輯一個(gè)或多個(gè)文件;簡(jiǎn)化對(duì)文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
1.讀取:sed 從輸入流(文件、管道、標(biāo)準(zhǔn)輸入)中讀取一行內(nèi)容并存儲(chǔ)到臨時(shí)的緩沖區(qū)中;
2.執(zhí)行:默認(rèn)情況下,所有的 sed 命令都在模式空間中順序地執(zhí)行,除非指定了行的地址,否則 sed 命令將會(huì)在所有的行上依次執(zhí)行;
3.顯示:發(fā)送修改后的內(nèi)容到輸出流,再發(fā)送數(shù)據(jù)后,模式空間將會(huì)被清空。注意:默認(rèn)情況下,所有的 sed 命令都是在模式空間內(nèi)執(zhí)行的,因此輸入的文件并不會(huì)發(fā)生任何變化,除非是用重定向存儲(chǔ)輸出。
其中,“參數(shù)”是指操作的目標(biāo)文件,當(dāng)存在多個(gè)操作對(duì)象時(shí)用,文件之間用逗號(hào)“,”分隔;而 scriptfile 表示腳本文件,需要用“-f”選項(xiàng)指定,當(dāng)腳本文件出現(xiàn)在目標(biāo)文件之前時(shí),表示通過(guò)指定的腳本文件來(lái)處理輸入的目標(biāo)文件。
sed [選項(xiàng)] ‘操作’ 參數(shù)
sed [選項(xiàng)] -f scriptfile 參數(shù)
語(yǔ)法:sed [options] [script] [inputfile]
-e :允許執(zhí)行多個(gè)腳本;
-f :從腳本文件中讀取命令;
-h :顯示幫助;
-n :取消默認(rèn)輸出;
-i :直接修改原始文件;
-l: 指定行長(zhǎng)度;
-u: 最低限度的緩存輸入和輸出
-r:在腳本中使用正則表達(dá)式
a:增加,在當(dāng)前行下面增加一行指定內(nèi)容;
c:替換,將選定行替換為指定內(nèi)容;
d:刪除,刪除選定的行;
i :插入,在選定行上面插入一行指定內(nèi)容;
p:打印,如果同時(shí)指定行,表示打印指定行;如果不指定行,則表示打印所有內(nèi)容,通常與 -n選項(xiàng)一起使用;
s :替換,替換指定字符;
y :字符轉(zhuǎn)換;
^: 匹配行開(kāi)始,如:/^sed/匹配所有以sed開(kāi)頭的行。
$ : 匹配行結(jié)束,如:/sed$/匹配所有以sed結(jié)尾的行。
. : 匹配一個(gè)非換行符的任意字符,如:/s.d/匹配s后接一個(gè)任意字符,最后是d。: 匹配0個(gè)或多個(gè)字符,如:/*sed/匹配所有模板是一個(gè)或多個(gè)空格后緊跟sed的行。
[] : 匹配一個(gè)指定范圍內(nèi)的字符,如/[ss]ed/匹配sed和Sed。
[^] : 匹配一個(gè)不在指定范圍內(nèi)的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一個(gè)字母開(kāi)頭,緊跟ed的行。
(..) : 匹配子串,保存匹配的字符,如s/(love)able/\1rs,loveable被替換成lovers。
& : 保存搜索字符用來(lái)替換其他字符,如s/love/&/,love這成love。
\< : 匹配單詞的開(kāi)始,如:/\<love/匹配包含以love開(kāi)頭的單詞的行。
\> : 匹配單詞的結(jié)束,如/love\>/匹配包含以love結(jié)尾的單詞的行。
x{m} : 重復(fù)字符x,m次,如:/0{5}/匹配包含5個(gè)0的行。
x{m,} : 重復(fù)字符x,至少m次,如:/0{5,}/匹配至少有5個(gè)0的行。
x{m,n} : 重復(fù)字符x,至少m次,不多于n次,如:/0{5,10}/匹配5~10個(gè)0的行。
sed -n 5p aa.txt
sed -n '2p,5p' aa.txt #選擇第2到第5行
sed -n '2p;5p' aa.txt #選擇第2和第5行
sed -n '/^5/p' aa.txt #以5開(kāi)頭的行
sed -n '$p' aa.txt #打印最后一行
sed -n '1~2p' aa.txt #表示從第一行開(kāi)始,沒(méi)個(gè)行就打印出來(lái)
sed -n '/cc$/p' aa.txt #以cc結(jié)尾的行
sed -n '/fff/,10p' aa.txt #表示從含油字符串fff到第10行打印
備注:加上-n只顯示出來(lái),不會(huì)改變?cè)募粢淖冊(cè)募由蟬ed -i 。
g : 獲得內(nèi)存緩沖區(qū)的內(nèi)容,并替代當(dāng)前模板塊中的文本。
p : 打印模板塊的行。
w : file 寫并追加模板塊到file末尾。
sed 's/e/E/' aa.txt
sed 's/e/E/g' aa.txt #全文中e都替換成E
sed '1,5s/e/E/g' aa.txt #第一行到第5行間e都替換成E
sed '6,/^6/s/f/E/g' aa.txt #以6開(kāi)頭的行f都替換成E
sed '/^6/s//E/g' aa.txt #以6開(kāi)頭的行都替換成E
備注:后面不加上g,只會(huì)替換每行第一次會(huì)出現(xiàn)的字符串,sed 不會(huì)改變?cè)募瑓?shù)之間不一定非要使用斜線分割,也可以使用除空格,換行外的任意字符若要改變?cè)募由?-i 。
sed -e '3d' aa.txt #刪除第三行
sed -e '3,5d' aa.txt #刪除3到5行
sed -e '$d' aa.txt #刪除最后一行
sed -e '1d;5d' aa.txt #刪除1,5行
sed -e '1~2d' aa.txt #刪除奇數(shù)行
sed -e '0~2d' aa.txt #刪除偶數(shù)行
sed -e '1,/^6/d' aa.txt #刪除1到以6開(kāi)頭的行
sed -e '5,$d' aa.txt #刪除從5行到最后
sed '^$d' aa.txt #刪除空白行
備注:刪除原文件內(nèi)容要加上-i
sed '3a20200229' aa.txt #第三行后追加
sed '/^8/a2020008' aa.txt #以8開(kāi)頭的行后追加
備注:使用echo也可以追加,但> ,>>不一樣。
echo "9988" >>aa.txt 在文本最后追加,
等于sed '$a9988' aa.txt
echo -e "999" >aa.txt 直接覆蓋原文
sed '3i2128' aa.txt #第三行插入
sed '/^9/i2128' aa.txt #以9開(kāi)頭行插入
sed '$i2348' aa.txt #末行插入,實(shí)際上是倒數(shù)第二行
sed -n -e 's/c/C/g' -e '2,3p' aa.txt
sed -e 's/d/D/g;3i6868p' aa.txt
sed -n '1,5 {
s/c/C/g
s/e/E/g
2i5566
p
}' aa.txt
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:Linux中Sed命令怎么用?-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://m.newbst.com/article32/dgjspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、品牌網(wǎng)站制作、Google、靜態(tài)網(wǎng)站、網(wǎng)站排名、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容