我正在使用jq-1.5
。我想为JSON数组发出一个运行计数器(即索引)。
我的JSON是:
{"Actors": "Tom,Dick,Mary"}
我可以使用splits()
将字符串拆分为数组
echo '{"Actors": "Tom,Dick,Mary"}' | jq --raw-output '. | ( .Actors | splits( "," ) )'
Tom
Dick
Mary
它如何为每个元素创建一个运行计数器?我尝试过使用--arg
,但似乎无法使其递增。
我想要:
Tom 1
Dick 2
Mary 3
发布于 2018-05-28 09:07:45
您可以使用to_entries
。试试这个:
echo '{"Actors": "Tom,Dick,Mary"}' | jq -r '[.Actors | splits(",")] | to_entries | map("\(.value) \(1 + .key)") | .[]' | column -t -o" "
我添加了| column -t -o" "
,我不知道如何用jq格式化列。
发布于 2018-05-28 10:15:58
可以用@tsv
产生TSV输出。对于给定的输入,
jq -r '.Actors | split(",") | to_entries[] | [.value,.key] | @tsv'
产生:
Tom 0
Dick 1
Mary 2
如果您想要基于1的索引,请用上面的1 + .key
替换.key
。
https://stackoverflow.com/questions/50557803
复制相似问题