파이프된 Unix 명령을 사용하여 파일의 패턴을 영구적으로 바꾸는 방법

파이프된 Unix 명령을 사용하여 파일의 패턴을 영구적으로 바꾸는 방법

다음 줄이 있으므로 구체적으로 바꾸고 싶습니다.

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_optionsfalse

변경 사항을 적용하려면 해당 옵션 이나 옵션과 yq함께 사용하세요 .--in-place-i

이는 yqJSON 래퍼를 둘러싼 래퍼 jq이므로 문서에서 주석이 제거됩니다.


yq에서 제공하는 프로그램을 사용하는 경우https://mikefarah.gitbook.io/yq/, Ubuntu에 설치하는 경우 다음을 yq사용하십시오 .snap

yq eval '.client_encryption_options.enabled |= false' file.yml

... 내부 편집을 위해 해당 --inplace또는 옵션을 사용하세요.-i

yq파일에서 주석이 제거되지는 않습니다 .

관련 정보