java – How to parse the command line output of a command and return a specific value
you can use -o jsonpath
along with kubectl to fetch specific value from kubectl get
commands :
Example :
[root@machine ~]# kubectl get secret default-token-fd4wm
NAME TYPE DATA AGE
default-token-fd4wm kubernetes.io/service-account-token 3 47d
- To Get all the values of secret in json format
[root@machine~]# kubectl get secret default-token-fd4wm -o json
{
"apiVersion": "v1",
"data": {
"ca.crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ESXhOVEUwTkRZd09Gb1hEVE15TURJeE16RTBORFl3T0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS0MrCjJhNVV2LzJjMTZ6QkdnRzU5a1p1MW15aEM1V2VrWkUyc1RBSzFCWVBUNDdwdVErMmJwcGRCNnQyYnBsY00zMWwKaENZTDNDM0dXSHU4dElucEJtQlgyN3BBWW5TVlE2OTRYVmpjR0hjZDFVMXcvMTJDRnlLSDlSTjQ5RjVnT21SOAptWlQrZFN6cUYwWmc4cENsZEJiYUJMOXlqZU9CS1hCcmFiWDhONWNlTTZja284MjNRTHY3Z1hEU05aeTBjcFU5CmxLdjZkL2xCNHpDcnRXSlpvTjh4TjFtRDJORUJDbDFibkh1K1pKNXdXSkVYcEVUaDNpdnczdnoxdVgvMXBRTGUKVUZ5QkNGc1pRdFM5NlB3MzdUL2V1RGNQWFVaMHVSc2hmZ1ZKM3RjNG1LYlpxc2pSc2JHNVlFRWoxQVFUV2RRbwpjZ1hzK3MxQURGcS93bzZjZVUwQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZNSWpuYjduOVRWTFp0Ymp1bjBwcjV3ZUZsL0FNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREl4eDR0NHhBdi91OE9UNExaOQpLaXkwRXZqNDZqdWZKODA1OFBvajVGRk1rc1NLZG1qamtzSmM3R1E5YW4xWDRIQStMT0pLM3AyNDZFZzRvWWhqCkZIMnRmWTBUZ3NmbTlXc2JSTDlqUVQ2U2FkdHJEV3lIbkxrdTVKYkw4VTJPU295V2g3d1dhdTNLNDQ0NjdXalgKMnEvd00vNldVYk8zemR1djVyVnZTQmhvVmFjUjZBTTlXSzM3NlZRTm9qMjRXOEtjZmJjRUtpQ1BJOXRmZzF0dQpaM2ZyVkR4MTBZMi91ZWd3ZDQzYWRMM3hFQlhyU0N5MUR4OGs2Sjg4SFBVWFdrZm5qdHQ3cmlEcFlsUjJDWkZuCmZvOVM3Y0prTkxmdFZ1eFh6VzJuNTBBNzRGalgxcWU3VlEyUHZCRURPYS9UcnU2Z01UYkZRWkFxdXVXanZzRUQKVWRJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"namespace": "ZGVmYXVsdA==",
"token": "ZXlKaGJHY2lPaUpTVXpJMU5pSXNJbXRwWkNJNklqaHZiMEZTTWxsaWNuUTVVMkpyYlRjdFNtMTVVblZHU2xoaGMySmxVRmRqY25kamRWZ3hjV2RYYWpnaWZRLmV5SnBjM01pT2lKcmRXSmxjbTVsZEdWekwzTmxjblpwWTJWaFkyTnZkVzUwSWl3aWEzVmlaWEp1WlhSbGN5NXBieTl6WlhKMmFXTmxZV05qYjNWdWRDOXVZVzFsYzNCaFkyVWlPaUprWldaaGRXeDBJaXdpYTNWaVpYSnVaWFJsY3k1cGJ5OXpaWEoyYVdObFlXTmpiM1Z1ZEM5elpXTnlaWFF1Ym1GdFpTSTZJbVJsWm1GMWJIUXRkRzlyWlc0dFptUTBkMjBpTENKcmRXSmxjbTVsZEdWekxtbHZMM05sY25acFkyVmhZMk52ZFc1MEwzTmxjblpwWTJVdFlXTmpiM1Z1ZEM1dVlXMWxJam9pWkdWbVlYVnNkQ0lzSW10MVltVnlibVYwWlhNdWFXOHZjMlZ5ZG1salpXRmpZMjkxYm5RdmMyVnlkbWxqWlMxaFkyTnZkVzUwTG5WcFpDSTZJak0zT1RsallXWm1MV1F4TURVdE5HRTBNaTA1TldNd0xXWTFaRGMzWVRjNVpXWTBZaUlzSW5OMVlpSTZJbk41YzNSbGJUcHpaWEoyYVdObFlXTmpiM1Z1ZERwa1pXWmhkV3gwT21SbFptRjFiSFFpZlEuYV92bkplRU16SGZmRlk4VFRpQk5UWHZpOVlpSHllc0NOLUxQV0Y0NnBBOWN5dFJ3bmdjTWhpb3hMbUp1QzB3NnBRMmdPQmZLUUdzSW9OcS1wWXhiUlc5TTJxNUp3cmxseVJlbzdQV3daVzBGcWtSSzl6bG5ZNFpOUUY0YlJqUVJqSFlUU2ZUTDA5WkgtR3JlNVBHZDhvOUtFZjZBXzBEWXFmTnUyc0t2WGlBYW9STnVXV29XWkxiRGl2NE1vTnFiOTJmajRiU2ZEbnFGb2I0U21UcWVPRnpaU29iZVlzcmpLVXdidUVQWlZWdE5VLWRxc2tEdEpYVjIzbmZ2UWVUdk1pbkZ5R0xkWjBtckRTX2ZQcVpTRHA0b2dCVXB2Z3hOai1fZUw2bS1wMUx0Ukh3Q2tzNVBvczNSSUZWbnFqeElSeWpJYnh3THBzTDZNU3l5Z0E1bVZR"
},
"kind": "Secret",
"metadata": {
"annotations": {
"kubernetes.io/service-account.name": "default",
"kubernetes.io/service-account.uid": "3799caff-d105-4a42-95c0-f5d77a79ef4b"
},
"creationTimestamp": "2022-02-15T14:46:30Z",
"name": "default-token-fd4wm",
"namespace": "default",
"resourceVersion": "376",
"uid": "2078ada0-c8a4-4926-b1a1-796e1a8fa12c"
},
"type": "kubernetes.io/service-account-token"
}
- To Get specfic values from it (for example ca.crt or token )
[root@machine ~]# kubectl get secret default-token-fd4wm -o jsonpath="{.data.ca\.crt}"
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ESXhOVEUwTkRZd09Gb1hEVE15TURJeE16RTBORFl3T0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS0MrCjJhNVV2LzJjMTZ6QkdnRzU5a1p1MW15aEM1V2VrWkUyc1RBSzFCWVBUNDdwdVErMmJwcGRCNnQyYnBsY00zMWwKaENZTDNDM0dXSHU4dElucEJtQlgyN3BBWW5TVlE2OTRYVmpjR0hjZDFVMXcvMTJDRnlLSDlSTjQ5RjVnT21SOAptWlQrZFN6cUYwWmc4cENsZEJiYUJMOXlqZU9CS1hCcmFiWDhONWNlTTZja284MjNRTHY3Z1hEU05aeTBjcFU5CmxLdjZkL2xCNHpDcnRXSlpvTjh4TjFtRDJORUJDbDFibkh1K1pKNXdXSkVYcEVUaDNpdnczdnoxdVgvMXBRTGUKVUZ5QkNGc1pRdFM5NlB3MzdUL2V1RGNQWFVaMHVSc2hmZ1ZKM3RjNG1LYlpxc2pSc2JHNVlFRWoxQVFUV2RRbwpjZ1hzK3MxQURGcS93bzZjZVUwQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZNSWpuYjduOVRWTFp0Ymp1bjBwcjV3ZUZsL0FNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREl4eDR0NHhBdi91OE9UNExaOQpLaXkwRXZqNDZqdWZKODA1OFBvajVGRk1rc1NLZG1qamtzSmM3R1E5YW4xWDRIQStMT0pLM3AyNDZFZzRvWWhqCkZIMnRmWTBUZ3NmbTlXc2JSTDlqUVQ2U2FkdHJEV3lIbkxrdTVKYkw4VTJPU295V2g3d1dhdTNLNDQ0NjdXalgKMnEvd00vNldVYk8zemR1djVyVnZTQmhvVmFjUjZBTTlXSzM3NlZRTm9qMjRXOEtjZmJjRUtpQ1BJOXRmZzF0dQpaM2ZyVkR4MTBZMi91ZWd3ZDQzYWRMM3hFQlhyU0N5MUR4OGs2Sjg4SFBVWFdrZm5qdHQ3cmlEcFlsUjJDWkZuCmZvOVM3Y0prTkxmdFZ1eFh6VzJuNTBBNzRGalgxcWU3VlEyUHZCRURPYS9UcnU2Z01UYkZRWkFxdXVXanZzRUQKVWRJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
[root@machine ~]# kubectl get secret default-token-fd4wm -o jsonpath="{.data.token}"
ZXlKaGJHY2lPaUpTVXpJMU5pSXNJbXRwWkNJNklqaHZiMEZTTWxsaWNuUTVVMkpyYlRjdFNtMTVVblZHU2xoaGMySmxVRmRqY25kamRWZ3hjV2RYYWpnaWZRLmV5SnBjM01pT2lKcmRXSmxjbTVsZEdWekwzTmxjblpwWTJWaFkyTnZkVzUwSWl3aWEzVmlaWEp1WlhSbGN5NXBieTl6WlhKMmFXTmxZV05qYjNWdWRDOXVZVzFsYzNCaFkyVWlPaUprWldaaGRXeDBJaXdpYTNWaVpYSnVaWFJsY3k1cGJ5OXpaWEoyYVdObFlXTmpiM1Z1ZEM5elpXTnlaWFF1Ym1GdFpTSTZJbVJsWm1GMWJIUXRkRzlyWlc0dFptUTBkMjBpTENKcmRXSmxjbTVsZEdWekxtbHZMM05sY25acFkyVmhZMk52ZFc1MEwzTmxjblpwWTJVdFlXTmpiM1Z1ZEM1dVlXMWxJam9pWkdWbVlYVnNkQ0lzSW10MVltVnlibVYwWlhNdWFXOHZjMlZ5ZG1salpXRmpZMjkxYm5RdmMyVnlkbWxqWlMxaFkyTnZkVzUwTG5WcFpDSTZJak0zT1RsallXWm1MV1F4TURVdE5HRTBNaTA1TldNd0xXWTFaRGMzWVRjNVpXWTBZaUlzSW5OMVlpSTZJbk41YzNSbGJUcHpaWEoyYVdObFlXTmpiM1Z1ZERwa1pXWmhkV3gwT21SbFptRjFiSFFpZlEuYV92bkplRU16SGZmRlk4VFRpQk5UWHZpOVlpSHllc0NOLUxQV0Y0NnBBOWN5dFJ3bmdjTWhpb3hMbUp1QzB3NnBRMmdPQmZLUUdzSW9OcS1wWXhiUlc5TTJxNUp3cmxseVJlbzdQV3daVzBGcWtSSzl6bG5ZNFpOUUY0YlJqUVJqSFlUU2ZUTDA5WkgtR3JlNVBHZDhvOUtFZjZBXzBEWXFmTnUyc0t2WGlBYW9STnVXV29XWkxiRGl2NE1vTnFiOTJmajRiU2ZEbnFGb2I0U21UcWVPRnpaU29iZVlzcmpLVXdidUVQWlZWdE5VLWRxc2tEdEpYVjIzbmZ2UWVUdk1pbkZ5R0xkWjBtckRTX2ZQcVpTRHA0b2dCVXB2Z3hOai1fZUw2bS1wMUx0Ukh3Q2tzNVBvczNSSUZWbnFqeElSeWpJYnh3THBzTDZNU3l5Z0E1bVZR
There are some good examples of jsonpath here
Read more here: Source link