I'm using jq more and more now, and continue to love it the more I get to know it ...
This time around, I'm looking at selecting data based upon text patterns.
Here's an example: -
cat simpsons.json | jq .
[
{
"givenName": "Maggie",
"familyName": "Simpson"
},
{
"givenName": "Lisa",
"familyName": "Simpson"
},
{
"givenName": "Marge",
"familyName": "Simpson"
},
{
"givenName": "Homer",
"familyName": "Simpson"
},
{
"givenName": "Bart",
"familyName": "Simpson"
}
]
Say I want to find all the family members whose first name ( aka givenName ) begins with "Ma" and ends with "e" ?
JQ has the tools for that, as part of the select() tool, namely startswith and endswith.
Here's it in action: -
cat simpsons.json | jq -r '.[].givenName | select(startswith("Ma") and endswith("e"))'
Maggie
Marge
If I want to narrow that down to only include first names that end with "ie", then here goes: -
cat simpsons.json | jq -r '.[].givenName | select(startswith("Ma") and endswith("ie"))'
Maggie
Now obviously this is a very trivial example, but I've been using this to great effect with the IBM Cloud CLI tool, whilst tinkering with OpenShift Container Platform (OCP) clusters, Cloud Object Storage buckets and secrets.
Of course I could use grep and awk but why.... jq can do it all 🤪
Which is nice....
No comments:
Post a Comment