kislyuk / yq

Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents
https://kislyuk.github.io/yq/
Apache License 2.0
2.57k stars 82 forks source link

get key with dot in yaml file #100

Closed l0n3star closed 4 years ago

l0n3star commented 4 years ago

I'm using yq on OSX to try and get a key with contains a dot. Specifically I'm looking to get tls.crt. I tried:

yq .data."tls.crt" tls.yaml

but it doesn't work. I just get null.

How can this be achieved? The yaml file is below.

cat tls.yaml 

apiVersion: v1

data:

tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNxRENDQVpBQ0NRQzJ3Q2xDd3I2RlV6QU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRRERBdG0KYjI4dVltRnlMbU52YlRBZUZ3MHlNREE0TVRBeE9UTTJNRE5hRncweU1UQTRNVEF4T1RNMk1ETmFNQll4RkRBUwpCZ05WQkFNTUMyWnZieTVpWVhJdVkyOXRNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDCkFRRUF0ZTgrZXNvc2Voc0UvYXErNUpHWTBzVzJUQTN1ZXN5Zi9UL3hTcXdXc25wMm9yQmphSE5xUUpaRzJHNWwKS0NnVFVxY3JwNFhraVhmS1hXelEzRml5R2N0SHZPSDdyRWhDVnBrVkM1QWtqMDN6aW40Tkc1UEdBaDdReHdMWApxSGhVR09QTFVXQk5iWDdFZlRjTHllSmNpU3l2QmlQVFZDYWJhSjdFWUUxbjNKcDFPcEhuTlFjb2ZPdnRablFaClRRdG4xNEt1NUFsbXRFWWNkaEZNcWZtQW9jUGhYdkZhZWVCZlcrNTlNSjc1OFJMME4vOWZjaEF1TDNhTWxoOEQKVy94ZjJsMldrTjVkYUZJNmJHSE9GYUdsNDhaN1hkZUFzMDNPRUVxVkJPa09FdjI0MTdWdHRtb1Y2blhLUTljUgp3UWdyU05kSjFtSkdWd0tRMHBCcFR2YU9Kd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQUU2SjRqCkIwY0dHdXVGZ1BRY2w0RGVDcCtLcWxhNzNXTGoxdVQzWVVCajM2ZGVDSkZZdWFCQ0YvVXpOTm5CRFU1K2wvdEoKS2M4aUxFcTh6Mjd0QWZQNnRyUGFCY2lJTEJ6OUxuZG5ickIzR3pFUkR2WmszZ0VuRFBUZkdGMlZEMk9icU1tbgpuWXMxQ1BndkhINjBSSVBaOWpLWW1PVWVuT1VyaEF6dFNEVTdOR1ZmOTR0Y3NWTUQ0eFd4STUwL3QvQlZ1ay9QCkpBbHRzS3F2czZJOWxQTFk1SUkybDM5WFZGSDZ6ZVdXYVJjUm1SRW1zUnBMTVZMVHVtMTViS3Q5bkl0b0RWamMKdnNEa0ZjMFBoWE9tMGZzaWQxdWpaTWc4U3VaWVk2UVJIaVR4M3JFaG9mUVRZWEsxMWgvSU9TM3JDejBWSGJiTAovcmQ2Z3N5ekZCR0k2V0lHCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K

tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQzE3ejU2eWl4Nkd3VDkKcXI3a2taalN4YlpNRGU1NnpKLzlQL0ZLckJheWVuYWlzR05vYzJwQWxrYllibVVvS0JOU3B5dW5oZVNKZDhwZApiTkRjV0xJWnkwZTg0ZnVzU0VKV21SVUxrQ1NQVGZPS2ZnMGJrOFlDSHRESEF0ZW9lRlFZNDh0UllFMXRmc1I5Ck53dko0bHlKTEs4R0k5TlVKcHRvbnNSZ1RXZmNtblU2a2VjMUJ5aDg2KzFtZEJsTkMyZlhncTdrQ1dhMFJoeDIKRVV5cCtZQ2h3K0ZlOFZwNTRGOWI3bjB3bnZueEV2UTMvMTl5RUM0dmRveVdId05iL0YvYVhaYVEzbDFvVWpwcwpZYzRWb2FYanhudGQxNEN6VGM0UVNwVUU2UTRTL2JqWHRXMjJhaFhxZGNwRDF4SEJDQ3RJMTBuV1lrWlhBcERTCmtHbE85bzRuQWdNQkFBRUNnZ0VBV2hvL2ZqNXNZcGpKRXZ3aUNEOFhTYU9EVWcxQVEyN2QrV1ZXa2QzQ2ErZjgKb3p2cUw0dWhYcFZPUnRmOW56S2h4emhsaFZUcFJ5K2RlRUZ3K3YrdVROb0JFRWwzQSs3UmMrUGlxVlJjMXVBTApNbGFWRlVoTk16V2h2ajNwSWxWZGlPb2dBcEJJS0djMDFyS1JVdzJaT0pKNXAvZk1MSXZtUVowSHNvNERWeHdOCkRjQWFkbnFmN3FraVhoLzBTcGltSmpwUSs1Nzc1anVFNk53L0JRakN1cWRMMUtVYTc3YWt0VUtnUVlCeGpFU2wKWC8vUjYyTzNNQWl5clUxN3E4TEh2aTlEcC92NkRJbUVmcldLS1ZxVjFLWkdja2t2RHlMZ0diNllDdEVzMEkxZgo0b3l2c2ZMSVAzM1JZSXU1Q3NrbnNjKzRkZzZKV1F1UjRRam16MHRPSVFLQmdRRHVPVlNUcm04aCtyUitidFpZClRCdmI3dEtRTERlWUx0elFaVFFQa2J6QTA1VzBsQm1xMUU1YUI0OEV2UEJXUFQxaUpIaExYMWxMOGZ1OHRUb2MKMkU4dksyQlNGalc3dHlFMStiREFFQWJ4V0ZPdDBFQmpkMW9ZK3l0MHJ5eXlhaUt6d3hScVBlVC9mM1FjbmFnUwptcEp5Q01JSFBQL1lEVGlUbXVwTEFncU5Wd0tCZ1FERGdxVnVDZGpBOUtkWTAwemZxRkJYbWRlZVE5Z1d2blVRClh4RHU3OGJoNWpCMVgwNkpRS1dtTFdBTTArOGFPbVFkSUJVeGg5NUN3bjQ0dmEwQ3hka1FSbER1RWplYkFld0kKeHNFN2xvZFZHeGVaeEtXZnpJc21rWjQ1a2pybjNnL3F1c0dCN29MUWdKWDZPNGVwWnhwa1lmSzJISHo1K2daYQpCL0tvbElHenNRS0JnRy9id2FmNnJ6cEFVMEpPM3h6azErd0VqeUNkY3BsbDM4K0d4ZFJOdFZqQndUamlsYzdPCkUrQllUa0tHU1QvbFQ0NW0yNGxnd3poUzdzYWtQaDVQUDVkQmdkL3BoOStWMU9WWVVqTk5FMFYrR1FTemxaaGUKOFpKclZmTmJVZHlRMDZ5ZS9GWUtyQjJBaGsvdGczOEF6NlQyRWMxK1NnL3ozVTRKM3R2TG9KTFBBb0dCQUo5YgpXOC9uUXI5MEt2c2hyNlVWb2ZibE5IU1J4QTQxeTJFK3U2U2wyQ3ZFM25hczZtekJQc1BHZEdYQVVVSEZtbGlMCkQvdEJUWTZJelMwZW5XaUhMemd1dUVSMG9OSTlyTkF5Z01vN0ZhL3UxenZFcDJNcTY3alNORytrbTFMbkUzNDIKSHdmekNyazhOZ0t5aHc4ek5MWGhpRjJidHRwaVNzOFRiMXl0UDFMaEFvR0JBTjFibHdyTklKQW44UmFZeFZFVwpGa1hMZEF5b2t1WEdPcGVpaTJGckVHbnEyS3p3NUlva1MrQVVaVE83YWJIaGhFbDAxS3h3MXpLRDdZVGJVL01ECjVjYVFPWGtaZmFMYktDVk95MFVIekwzbXRtS3B1cW80UGhPK0NoRGRtcXFRTXRYWG5kR0tRUGVBWkMwNEYwYUcKSU1vSHZTT05DbDhYeEhUWXpvMWtWZFplCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K

kind: Secret

metadata:

creationTimestamp: "2020-08-10T19:37:06Z"

name: test-tls

namespace: default

resourceVersion: "853143"

selfLink: /api/v1/namespaces/default/secrets/test-tls

uid: 6955a6ab-2cf9-4c91-8ed9-f28769102918

type: kubernetes.io/tls
kislyuk commented 4 years ago

Please see here: https://stackoverflow.com/questions/37018393/how-to-use-jq-when-the-variable-has-a-period

l0n3star commented 4 years ago

Thanks. I did this:

yq '.data."tls.crt"' tls.yaml

and it works.