我正在使用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
答案 0 :(得分:2)
您可以使用to_entries
。试试这个:
echo '{"Actors": "Tom,Dick,Mary"}' | jq -r '[.Actors | splits(",")] | to_entries | map("\(.value) \(1 + .key)") | .[]' | column -t -o" "
我添加了| column -t -o" "
,我不知道如何使用jq格式化列。
答案 1 :(得分:0)
可以使用@tsv
生成TSV输出。使用给定的输入,
jq -r '.Actors | split(",") | to_entries[] | [.value,.key] | @tsv'
产生
Tom 0
Dick 1
Mary 2
如果您想要基于1的索引,请将上面的.key
替换为1 + .key
。