Linux sed 命令字符串替換使用方法詳解

1. sed替換的基本語法

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

單引號裏面,s表示替換,三根斜線中間是替換的樣式,特殊字符須要使用反斜線」\」進行轉義。
2. 單引號」 ‘ ’」是沒有辦法用反斜線」\」轉義的

這時候只要把命令中的單引號改成雙引號就好了, 這點和正則表達式相似, 格式以下:

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

3. 替換分隔符

命令中的三根斜線分隔符能夠換成別的符號,有時候替換目錄字符串的時候有較多斜線,這個時候換成其它的分割符是較爲方便,只須要緊跟s定義便可。

# 將分隔符換成問號」?」:
sed 's?原字符串?替換字符串?'


4. 匹配關鍵字g

能夠在末尾加g替換每個匹配的關鍵字,不然只替換每行的第一個,例如:

# 替換全部匹配關鍵字
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" `grep oldstring -rl yourdir


7. 輸出參數i

sed處理過的輸出是直接輸出到屏幕上的,使用參數」i」直接在文件中替換。

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


8. 多條替換命令表示

多個替換能夠在同一條命令中執行,用分號」;」分隔,其格式爲:

# 同時執行兩個替換規則
sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g'

https://m.pythontab.com/article/1324

python

相關文章
相關標籤/搜索