通過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”