天天看點

Linux sed替換(轉載)

1. sed替換的基本文法為:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">sed 's/原字元串/替換字元串/'</pre>

單引号裡面,s表示替換,三根斜線中間是替換的樣式,特殊字元需要使用反斜線”\”進行轉義。

2. 單引号” ‘ ’”是沒有辦法用反斜線”\”轉義的,這時候隻要把指令中的單引号改為雙引号就行了,格式如下:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 要處理的字元包含單引号

sed "s/原字元串包含'/替換字元串包含'/" </pre>

3. 指令中的三根斜線分隔符可以換成别的符号,有時候替換目錄字元串的時候有較多斜線,這個時候換成其它的分割符是較為友善,隻需要緊跟s定義即可。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 将分隔符換成問号”?”:

sed 's?原字元串?替換字元串?'</pre>

4. 可以在末尾加g替換每一個比對的關鍵字,否則隻替換每行的第一個,例如:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 替換所有比對關鍵字

sed 's/原字元串/替換字元串/g'</pre>

5. 一些特殊字元的使用

”^”表示行首

”$”符号如果在引号中表示行尾,但是在引号外卻表示末行(最後一行)

[

Linux sed替換(轉載)

複制代碼

](javascript:void(0); "複制代碼")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 注意這裡的 " & " 符号,如果沒有 “&”,就會直接将比對到的字元串替換掉

sed 's/^/添加的頭部&/g'      #在所有行首添加

sed 's/$/&添加的尾部/g'      #在所有行末添加

sed '2s/原字元串/替換字元串/g'  #替換第2行

sed '$s/原字元串/替換字元串/g' #替換最後一行

sed '2,5s/原字元串/替換字元串/g' #替換2到5行

sed '2,$s/原字元串/替換字元串/g' #替換2到最後一行</pre>

Linux sed替換(轉載)

6.批量替換字元串

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">sed -i "s/查找字段/替換字段/g"

grep 查找字段 -rl 路徑

sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir</pre>

7. sed處理過的輸出是直接輸出到螢幕上的,使用參數”i”直接在檔案中替換。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 替換檔案中的所有比對項

sed -i 's/原字元串/替換字元串/g' filename</pre>

8. 多個替換可以在同一條指令中執行,用分号”;”分隔,其格式為:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 同時執行兩個替換規則

sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g' </pre>