Linux下Sed命令的用法_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、linux下sed命令的用法1. s簡(jiǎn)介 是一種在線編輯器,它一次處理一行內(nèi)容。處理時(shí),把當(dāng)前處理的行存儲(chǔ)在暫時(shí)緩沖區(qū)中,稱為 模式空間 (pattern space),接著用sed處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有 轉(zhuǎn)變,除非你用法重定向存儲(chǔ)輸出。sed主要用來自動(dòng)編輯一個(gè)或多個(gè)文件;簡(jiǎn)化對(duì)文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。以下介紹的是gnu版本的sed 3.02。 2. 定址 可以通過定址來定位你所希翼編輯的行,該地址用數(shù)字構(gòu)成,用逗號(hào)分隔的兩個(gè)行數(shù)表示以這兩行為起止的行的范圍(包括行數(shù)表示的那兩行)。如1,3表

2、示1,2,3行,美元符號(hào)($)表示最后一行。范圍可以通過數(shù)據(jù),表達(dá)式或者二者結(jié)合的方式確定 。 3. sed指令 調(diào)用sed指令有兩種形式: sed options 'command' (s) sed options -f scriptfile file(s) a :在當(dāng)前行后面加入一行文本。 b lable :分支到腳本中帶有標(biāo)志的地方,假如分支不存在則分支到腳本的末尾。 c :用新的文本轉(zhuǎn)變本行的文本。 d :從模板塊(pattern space)位置刪除行。 d:刪除模板塊的第一行。 i :在當(dāng)前行上面插入文本。 h :拷貝模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。 h :追加模板塊

3、的內(nèi)容到內(nèi)存中的緩沖區(qū) g :獲得內(nèi)存緩沖區(qū)的內(nèi)容,并替代當(dāng)前模板塊中的文本。 g :獲得內(nèi)存緩沖區(qū)的內(nèi)容,并追加到當(dāng)前模板塊文本的后面。 l :列表不能打印字符的清單。 n :讀取下一個(gè)輸入行,用下一個(gè)指令處理新的行而不是用第一個(gè)指令。 n :追加下一個(gè)輸入行到模板塊后面并在二者間嵌入一個(gè)新行,轉(zhuǎn)變當(dāng)前行號(hào)碼。 p :打印模板塊的行。 p :打印模板塊的第一行。 q :退出sed。 r file :從file中讀行。 t label :if分支,從最后一行開頭,條件一旦滿足或者t,t指令,將導(dǎo)致分支到帶有標(biāo)號(hào)的指令處,或者到腳本的末尾。 t label :錯(cuò)誤分支,從最后一行開頭,一旦發(fā)生錯(cuò)

4、誤或者t,t指令,將導(dǎo)致分支到帶有標(biāo)號(hào)的指令處,或者到腳本的末尾。 w file :寫并追加模板塊到file末尾。 w file :寫并追加模板塊的第一行到file末尾。 ! :表示后面的指令對(duì)全部沒有被選定的行發(fā)生作用。 s/re/sing :用string替換正則表達(dá)式re。 = :打印當(dāng)前行號(hào)碼。 :把注釋擴(kuò)展到下一個(gè)換行符以前。 以下的是替換標(biāo)志 g:表示行內(nèi)全面替換。 p:表示打印行。 w:表示把行寫入一個(gè)文件。 x:表示互換模板塊中的文本和緩沖區(qū)中的文本。 y:表示把一個(gè)字符翻譯為另外的字符(但是不用于正則表達(dá)式) 4. 選項(xiàng) -e command, -pression=comma

5、nd 允許多臺(tái)編輯。 -h, help 打印協(xié)助,并顯示bug列表的地址。 -n, -quiet, silent 取消默認(rèn)輸出。 -f, -filer=script-file 引導(dǎo)sed腳本文件名。 -v, version 打印版本和版權(quán)信息。 5. 元字符集 錨定行的開頭 如:/sed/匹配全部以sed開始的行。 $ 錨定行的結(jié)束 如:/sed$/匹配全部以sed結(jié)尾的行。 . 匹配一個(gè)非換行符的字符 如:/s.d/匹配s后接一個(gè)隨意字符,然后是d。 * 匹配零或多個(gè)字符 如:/*sed/匹配全部模板是一個(gè)或多個(gè)空格后緊跟sed的行。 匹配一個(gè)指定范圍內(nèi)的字符,如/ssed/匹配sed和se

6、d。 匹配一個(gè)不在指定范圍內(nèi)的字符,如:/a-rt-zed/匹配不包含a-r和t-z的一個(gè)字母開始,緊跟ed的行。 (.) 保存匹配的字符,如s/(love)able/1rs,loveable被替換成lovers。 保存搜尋字符用來替換其他字符,如s/love/* */,love這成*love*。 錨定單詞的開頭,如:/ 錨定單詞的結(jié)束,如/love /匹配包含以love結(jié)尾的單詞的行。 xm 重復(fù)字符x,m次,如:/05/匹配包含5個(gè)o的行。 xm, 重復(fù)字符x,起碼m次,如:/o5,/匹配起碼有5個(gè)o的行。 xm,n 重復(fù)字符x,起碼m次,不多于n次,如:/o5,10/匹配5-10個(gè)o的行

7、。 6. 實(shí)例 刪除:d指令 $ sed '2d' example-刪除example文件的其次行。 $ sed '2,$d' example-刪除example文件的其次行到末尾全部行。 $ sed '$d' example-刪除example文件的最后一行。 $ sed '/test/'d example-刪除example文件全部包含test的行。 替換:s指令 $ sed 's/test/mytest/g' example-在整行范圍內(nèi)把test替換為mytest。假如沒有g(shù)標(biāo)志,則惟獨(dú)每行第一個(gè)匹配的te

8、st被替換成mytest。 $ sed -n 's/test/mytest/p' example-(-n)選項(xiàng)和p標(biāo)記一起用法表示只打印那些發(fā)生替換的行。也就是說,假如某一行開始的test被替換成mytest,就打印它。 $ sed 's/192.168.0.1/ localhost/' example- 符號(hào)表示替換換字符串中被找到的部份。全部以192.168.0.1開始的行都會(huì)被替換成它自已加 localhost,變成192.168.0.1localhost。 $ sed -n 's/(love)able/1rs/p' example-lov

9、e被標(biāo)志為1,全部loveable會(huì)被替換成lovers,而且替換的行會(huì)被打印出來。 $ sed 's10100g' example-不論什么字符,緊跟著s指令的都被認(rèn)為是新的分隔符,所以, 在這里是分隔符,代替了默認(rèn)的 / 分隔符。表示把全部10替換成100。 選定行的范圍:逗號(hào) $ sed -n '/test/,/check/p' example-全部在模板test和check所確定的范圍內(nèi)的行都被打印。 $ sed -n '5,/test/p' example-打印從第五行開頭到第一個(gè)包含以test開頭的行之間的全部行。 $ sed '/test/,/check/s/$/sed test/' example-對(duì)于模板test和west之間的行,每行的末尾用字符串sed test替換。 多點(diǎn)編輯:e指令 $ sed -e '1,5d' -e &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論