sed 和 grep 批量替換文件內容--高級用法


sed -i "s|groups\['consul'\]\[0\]|hostvars\['consul-1'\]\['ansible_host'\]|g" `grep -rl "groups\['consul'\]\[0\]" ./`

注意的是 's|||g' 語句,當要替換的內容中有單引號   ' '   的存在則外邊要用 " " 雙引號括起來 否則雙引號和單引號都可。"s|||g"

下面是另一個案例:

全局替換當前目錄下yml文件中limits中cpu和mem,但是和requests中的cpu和mem值完全一樣,要替換的變量的名字是不一樣的,為了區分開limits和requests中的cpu這里采用了sed的高級用法。

 

 n --next 下一個的意思,下面的意思就是匹配limits,然后是他的(n)下一個開始替換也就是指定了替換limits的cpu值.

sed '/limits/{n;s/cpu: "0.3"/cpu: \{\{ k8s_resources_limits_cpu \}\}/}' `grep 'cpu: "0.3"' -rl ./`

 

 

sed -i '/cpu: "{{ k8s_resources_limits_cpu }}"/{n;s/memory: 2Gi/memory: \"{\{ k8s_resources_limits_mem \}\}"/}' `grep 'cpu: "{{ k8s_resources_limits_cpu }}"' -rl ./`

 


免責聲明!

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



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