扣丁學(xué)堂Linux基礎(chǔ)教程文本處理工具sed命令詳解
2018-07-16 11:00:44
1169瀏覽
sed是一種流編輯器,在linux文本處理中非常常用。它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。處理時,把當(dāng)前處理的行存儲在臨時緩沖區(qū)中,稱為“模式空間”(patternspace),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
今天扣丁學(xué)堂
Linux培訓(xùn)給大家來介紹一下關(guān)于最常用的字符串替換用法。
1.sed替換的基本語法
sed's/原字符串/替換字符串/'
單引號里面,s表示替換,三根斜線中間是替換的樣式,特殊字符需要使用反斜線”\”進(jìn)行轉(zhuǎn)義。
2.單引號”‘’”是沒有辦法用反斜線”\”轉(zhuǎn)義的
這時候只要把命令中的單引號改為雙引號就行了,這點(diǎn)和正則表達(dá)式類似,格式如下:
#要處理的字符包含單引號
sed"s/原字符串包含'/替換字符串包含'/"
3.替換分隔符
命令中的三根斜線分隔符可以換成別的符號,有時候替換目錄字符串的時候有較多斜線,這個時候換成其它的分割符是較為方便,只需要緊跟s定義即可。
#將分隔符換成問號”?”:
sed's?原字符串?替換字符串?'
4.匹配關(guān)鍵字g
可以在末尾加g替換每一個匹配的關(guān)鍵字,否則只替換每行的第一個,例如:
#替換所有匹配關(guān)鍵字
sed's/原字符串/替換字符串/g'
5.一些特殊字符的使用
”^”表示行首
”$”符號如果在引號中表示行尾,但是在引號外卻表示末行(最后一行)
#注意這里的"&"符號,如果沒有“&”,就會直接將匹配到的字符串替換掉
sed's/^/添加的頭部&/g'#在所有行首添加
sed's/$/&添加的尾部/g'#在所有行末添加
sed'2s/原字符串/替換字符串/g'#替換第2行
sed'$s/原字符串/替換字符串/g'#替換最后一行
sed'2,5s/原字符串/替換字符串/g'#替換2到5行
sed'2,$s/原字符串/替換字符串/g'#替換2到最后一行
sed's/原字符串/替換字符串/2g'#替換2到最后一行
6.批量替換字符串
sed-i"s/查找字段/替換字段/g"`grep查找字段-rl路徑`
sed-i"s/oldstring/newstring/g"`grepoldstring-rlyourdir
7.輸出參數(shù)i
sed處理過的輸出是直接輸出到屏幕上的,使用參數(shù)”i”直接在文件中替換。
#替換文件中的所有匹配項(xiàng)
sed-i's/原字符串/替換字符串/g'filename
8.多條替換命令表示
多個替換可以在同一條命令中執(zhí)行,用分號”;”分隔,其格式為:
#同時執(zhí)行兩個替換規(guī)則
sed's/^/添加的頭部&/g;s/$/&添加的尾部/g'
以上就是關(guān)于Linux基礎(chǔ)教程sed命令字符串替換使用方法詳解,請多多關(guān)注扣丁學(xué)堂,每天會更新高質(zhì)量和原創(chuàng)技術(shù)文章內(nèi)容,扣丁學(xué)堂是專業(yè)的Linux培訓(xùn)班,不僅有專業(yè)的老師和與時俱進(jìn)的課程體系,還有大量的Linux視頻教程供學(xué)員觀看學(xué)習(xí)哦。扣丁學(xué)堂Linux技術(shù)交流群:422345477。
【關(guān)注微信公眾號獲取更多的學(xué)習(xí)資料】
查看更多關(guān)于“Linux培訓(xùn)資訊”的相關(guān)文章>>
標(biāo)簽:
Linux命令
Linux視頻教程
Linux培訓(xùn)
Linux在線學(xué)習(xí)
Linux在線視頻
Linux基礎(chǔ)教程