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