天天看點

sed指令替換檔案内容示例(在CentOS中)

通過sed指令和正規表達式,我們可以友善的完成内容替換。

這裡我們以要把内容:

image: registry/mes-service:0      

結尾處的0 替換為 99

image: registry/mes-service:99      

為例進行展示。

以下是幾個簡單的替換示例

1、替換echo指令中的内容

echo image: registry/mes-service:.*|sed 's/mes-service:.*/mes-service:99/g'      

2、替換cat的檔案顯示結果

cat green-service.yml|sed 's/mes-service:.*/mes-service:99/g'      

3、把sed指令裝僅shell腳本中,通過參數改變替換内容,并将替換結果寫入檔案

建立shell(檔案名 changeversion),内容如下:

sed -i "s/mes-service:.*/mes-service:$1/g" service.yml
cat service.yml      

其中service.yml中,儲存有我們文章開頭的那個目标字元串“image: registry/mes-service:0”

​注意sed -i 後邊的字元串通過雙引号包了起來,而非單引号,這樣裡面的 $1才能生效,從我們的指令中擷取​

​-i 可以将替換結果寫入檔案,真正的修改檔案内容​

給shell增加執行權限(chmod +x)後,執行

./changeversion 99      

可以看到service.yml中的“image: registry/mes-service:0”被替換成了““image: registry/mes-service:99”