У меня есть следующие строки, поэтому я просто хочу заменить их в частности
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
с опцией --in-place
или -i
.
Это yq
оболочка вокруг jq
оболочки JSON, поэтому она удалит комментарии из документа.
Если вы используете yq
программу изhttps://mikefarah.gitbook.io/yq/, который вы получите, если установите yq
его, snap
например, на Ubuntu, а затем используйте
yq eval '.client_encryption_options.enabled |= false' file.yml
... и используйте его опцию --inplace
или -i
для внесения изменений на месте.
Это yq
не приведет к удалению комментариев из файла.