Linux中使用sed命令替換字符串小結


sed替換的基本語法為:

sed 's/原字符串/替換字符串/'


單引號里面,s表示替換,三根斜線中間是替換的樣式,特殊字符需要使用反斜線”\”進行轉義,但是單引號”‘”是沒有辦法用反斜線”\”轉義的,這時候只要把命令中的單引號改為雙引號就行了,例如:

sed "s/原字符串包含'/替換字符串包含'/" //要處理的字符包含單引號


命令中的三根斜線分隔符可以換成別的符號,這在要替換的內容有較多斜線是較為方便,只需要緊跟s定義即可,例如換成問號”?”:

sed 's?原字符串?替換字符串?' //自定義分隔符為問號


可以在末尾加g替換每一個匹配的關鍵字,否則只替換每行的第一個,例如:

sed 's/原字符串/替換字符串/' //替換所有匹配關鍵字


上箭頭”^”表示行首,美元”$”符號如果在引號中表示行尾,但是在引號外卻表示末行(最后一行),這里犯二了,搜了半天哪個符號表示首行,半天才想起來,首行就是數字”1″啊.那么在行首和行尾添加字符串就是把行尾和行首替換,例如:

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;s/$/&添加的尾部/g' //同時執行兩個替換規則


sed處理過的輸出是直接輸出到屏幕上的,要保存可以將輸出重定向,或者使用參數”i”直接在文件中替換:

sed -i 's/原字符串/替換字符串/g' filename //替換文件中的所有匹配項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM