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