我有以下几行,所以我只想特别替换
client_encryption_options:
enabled: true
到
client_encryption_options:
enabled: false
client_encryption_options:
enabled: true
# If enabled and optional is set to true, encrypted and unencrypted connections over native transport are handled.
optional: false
keystore: XXXXXX
keystore_password: XXXXX
# Set require_client_auth to true to require two-way host certificate validation
require_client_auth: true
#
# Set truststore and truststore_password if require_client_auth is true
答案1
由于您的输入是 YAML 文件,因此我们可以使用命令行 YAML 解析器,yq
例如https://kislyuk.github.io/yq/
yq -y '.client_encryption_options.enabled |= false' file.yml
这会将顶级对象enabled
中的键值更新为。client_encryption_options
false
要就地进行更改,请yq
与 it--in-place
或-i
选项一起使用。
这yq
是 JSON 包装器的包装器jq
,因此将从文档中删除注释。
如果您使用的yq
程序来自https://mikefarah.gitbook.io/yq/,这是如果您在 Ubuntu 上安装,然后yq
使用snap
yq eval '.client_encryption_options.enabled |= false' file.yml
...并使用其--inplace
或-i
选项进行就地编辑。
这yq
不会从文件中删除注释。