Ich habe folgende Zeilen, also möchte ich nur besonders ersetzen
client_encryption_options:
enabled: true
Zu
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
Antwort1
Da Ihre Eingabe eine YAML-Datei ist, können wir einen YAML-Parser für die Befehlszeile verwenden, wie yq
vonhttps://kislyuk.github.io/yq/
yq -y '.client_encryption_options.enabled |= false' file.yml
Dadurch wird der Wert des enabled
Schlüssels im client_encryption_options
Objekt der obersten Ebene auf aktualisiert false
.
Um die Änderung direkt vorzunehmen, verwenden Sie sie yq
mit der Option --in-place
oder -i
.
Dies yq
ist ein Wrapper um den jq
JSON-Wrapper und entfernt daher Kommentare aus dem Dokument.
yq
Wenn Sie das Programm von verwendenhttps://mikefarah.gitbook.io/yq/, das ist die Version, die Sie erhalten, wenn Sie sie beispielsweise auf Ubuntu installieren. Verwenden Sie yq
dannsnap
yq eval '.client_encryption_options.enabled |= false' file.yml
... und verwenden Sie die Option --inplace
oder -i
, um Änderungen direkt vorzunehmen.
Dadurch yq
werden keine Kommentare aus der Datei entfernt.