On my project I generate a json file here is an example (only one index):
[
{
"aaa": "lklklk",
"bbb": "uiop",
"kkk": "zeez",
"lll": 3,
"_source": {
"element1": "zzzz",
"element2": "eeee",
"element3": "hhhhh",
"element4": "jjjjjj",
"@timestamp": "2019-07-31T08:32:45.000Z",
"element5": "1",
"element6": "6768",
"element7": "gggg",
"element8": "ppppp"
},
{
"aaa": "lklklk",
"bbb": "uiop",
"kkk": "zeez",
"lll": 3,
"_source": {
"element1": "zzzz",
"element2": "eeee",
"element3": "hhhhh",
"element4": "jjjjjj",
"@timestamp": "2019-07-31T08:32:45.000Z",
"element5": "1",
"element6": "6768",
"element7": "gggg",
"element8": "ppppp"
},
]
I use this command
var1=$(jq '.['$cpt'] | ._source .element1' file.json)
and I can receive my value, however I receive this error:
jq error Cannot index number with number
I already try with
var1=$(jq '.[] | ._source .element1' file.json)
but I receive all data and I need to receive the data by index.
Here is my bash code:
while (($verification!=1))
do
elementa[$cpt]=$(jq '.['$cpt'] | ._source .element1' $File.json)
elementb[$cpt]=$(jq '.['$cpt'] | ._source .element2' $File.json)
elementc[$cpt]=$(jq '.['$cpt'] | ._source .element3' $File.json)
elementd[$cpt]=$(jq '.['$cpt'] | ._source .element4' $File.json)
elemente[$cpt]=$(jq '.['$cpt'] | ._source .element5' $File.json)
elementf[$cpt]=$(jq '.['$cpt'] | ._source .element6' $File.json)
elementg[$cpt]=$(jq '.['$cpt'] | ._source .element7' $File.json)
elementh[$cpt]=$(jq '.['$cpt'] | ._source ."@timestamp"' $File.json)
elementi[$cpt]=$(jq '.['$cpt'] | ._source .element8' $File.json)
done
for each line I receive the same error :/ Do you know why I have this error?
Thank you in advance.
[ { ... }, { ... }, ...]