Linux中使用sed命令替換字符串小結(jié)
發(fā)布時(shí)間:2014-04-17 12:52:10 作者:佚名
我要評(píng)論

這篇文章主要介紹了Linux中使用sed命令替換字條串小結(jié),純屬個(gè)人總結(jié),需要的朋友可以參考下
最近寫(xiě)了幾個(gè)小腳本用到了sed命令,學(xué)了一下,順便記下
sed替換的基本語(yǔ)法為:
復(fù)制代碼
代碼如下:sed 's/原字符串/替換字符串/'
單引號(hào)里面,s表示替換,三根斜線中間是替換的樣式,特殊字符需要使用反斜線”\”進(jìn)行轉(zhuǎn)義,但是單引號(hào)”‘”是沒(méi)有辦法用反斜線”\”轉(zhuǎn)義的,這時(shí)候只要把命令中的單引號(hào)改為雙引號(hào)就行了,例如:
復(fù)制代碼
代碼如下:sed "s/原字符串包含'/替換字符串包含'/" //要處理的字符包含單引號(hào)
命令中的三根斜線分隔符可以換成別的符號(hào),這在要替換的內(nèi)容有較多斜線是較為方便,只需要緊跟s定義即可,例如換成問(wèn)號(hào)”?”:
復(fù)制代碼
代碼如下:sed 's?原字符串?替換字符串?' //自定義分隔符為問(wèn)號(hào)
可以在末尾加g替換每一個(gè)匹配的關(guān)鍵字,否則只替換每行的第一個(gè),例如:
復(fù)制代碼
代碼如下:sed 's/原字符串/替換字符串/' //替換所有匹配關(guān)鍵字
上箭頭”^”表示行首,美元”$”符號(hào)如果在引號(hào)中表示行尾,但是在引號(hào)外卻表示末行(最后一行),這里犯二了,搜了半天哪個(gè)符號(hào)表示首行,半天才想起來(lái),首行就是數(shù)字”1″啊.那么在行首和行尾添加字符串就是把行尾和行首替換,例如:
復(fù)制代碼
代碼如下: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/$/&添加的尾部/g' //在所有行末添加
sed '2s/原字符串/替換字符串/g' //替換第2行
sed '$s/原字符串/替換字符串/g' //替換最后一行
sed '2,5s/原字符串/替換字符串/g' //替換2到5行
sed '2,$s/原字符串/替換字符串/g' //替換2到最后一行
替換樣式可以多個(gè)在同一條命令中執(zhí)行,用分號(hào)”;”分隔,例如:
復(fù)制代碼
代碼如下:sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g' //同時(shí)執(zhí)行兩個(gè)替換規(guī)則
sed處理過(guò)的輸出是直接輸出到屏幕上的,要保存可以將輸出重定向,或者使用參數(shù)”i”直接在文件中替換:
復(fù)制代碼
代碼如下:sed -i 's/原字符串/替換字符串/g' filename //替換文件中的所有匹配項(xiàng)
寫(xiě)完晚上12點(diǎn)半了,困得不行,要是中間語(yǔ)言不連貫了出錯(cuò)了請(qǐng)見(jiàn)諒,歡迎指出.
相關(guān)文章
- Sed主要用來(lái)自動(dòng)編輯一個(gè)或多個(gè)文件;簡(jiǎn)化對(duì)文件的反復(fù)操作;編寫(xiě)轉(zhuǎn)換程序等2014-03-18
輕松學(xué)會(huì)文本處理工具之二 linux sed命令
sed:Stream Editor文本流編輯,sed是一個(gè)“非交互式的”面向字符流的編輯器。能同時(shí)處理多個(gè)文件多行的內(nèi)容,可以不對(duì)原文件改動(dòng),把整個(gè)文件輸入到屏幕,可以把只匹配到模2013-09-23- sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法2014-06-05