No jq
, no grep -Po
, even no awk
.
Only bash
.
Goal: simulate grep -Po '(?<="code":")\w+(?=")'
on bash.
It's extraction of code value from json.
Json example:
{
"content": [
{
"createdBy":"admin",
"createdDate":"2019-04-01T07:07:37+0000",
"lastModifiedBy":"admin",
"lastModifiedDate":"2019-04-01T07:07:37+0000",
"code":"ABC123"
}
],
"first": true,
"last": true,
"totalPages": 1,
"totalElements": 1,
"numberOfElements": 1,
"size": 10,
"number": 0,
"sort": null
}
Expecting result: ABC123
.
My attempt:
CODE='{
"content": [
{
"createdBy":"admin",
"createdDate":"2019-04-01T07:07:37+0000",
"lastModifiedBy":"admin",
"lastModifiedDate":"2019-04-01T07:07:37+0000",
"code":"ABC123"
}
],
"first": true,
"last": true,
"totalPages": 1,
"totalElements": 1,
"numberOfElements": 1,
"size": 10,
"number": 0,
"sort": null
}'
echo "${CODE//[code":"\w+]/}"
It replaces, but I want substring... It was a try to use smth like that https://stackoverflow.com/a/1916293/4386227