我在 yaml 檔案 des.yaml 中有以下內容
simulator:
enabled: false
我想通過將模擬器設為 true 來啟用模擬器:
simulator:
enabled: true
通過使用 sed 命令
我嘗試使用 sed 命令,但它不起作用:
sed -i 's|simulator\:\n enabled\: false|simulator\:\n enabled\: true|' des.yaml
命令沒有拋出任何錯誤。
請幫忙
uj5u.com熱心網友回復:
使用 sed
$ sed -i '/simulator/ {N;s/\(enabled: \).*/\1true/}' input_file
如果simulator找到匹配項,則移至下一行,如果匹配項enabled存在,則該值將更改為 true。
輸出
simulator:
enabled: true
uj5u.com熱心網友回復:
即使像這樣的程式sed可以解決問題,也應該使用適當的工具,這里:https : //github.com/mikefarah/yq/releases/
yq eval '.simulator.enabled=true' des.yaml
uj5u.com熱心網友回復:
這可能對你有用(GNU sed):
sed -i '/simulator:/{n;/enabled:/s/false/true/}' file
匹配上simulator:,列印該行并獲取下一個。
匹配enabled:,替換false為true。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344207.html
