Here is my JSON. Its in a file called file1.txt
{"foo": [ {"bar": {"second": {"key1": "some/path/to/delimiter1_FIRST_IMPORTANT_VALUE_delimter2","key2": "OK_as_it_is","key3": "Just to show there is more stuff" } } }, {"bar": {"second": {"key1": "some/path/to/delimiter1_SECOND_IMPORTANT_VALUE_delimter2","key2": "Also_OK_as_it_is","key3": "Just to show there is more stuff" } } } ]}What I want to do is extract PORTION of the key1 value - the bits between delimiter1 and delimiter2 which would be _FIRST_IMPORTANT_VALUE_ and _SECOND_IMPORTANT_VALUE_
I know that the following ALMOST works:
$ cat file1.txt | jq '.foo[].bar.second | (.key1[23:46]), .key2'"_FIRST_IMPORTANT_VALUE_""OK_as_it_is""_SECOND_IMPORTANT_VALUE""Also_OK_as_it_is"...but as you can see, it misses the last character of _SECOND_IMPORTANT_VALUE_
So I need a more generalised form of the jq '.foo[].bar.second | (.key1[23:46]), .key2' that replaces the numbers 23 and 46 with values determined from delimiter1 and delimiter2
I really want to keep it to a single line - without using bash variables over multiple lines, sort of keep it within jq.