json 使用jq删除数组的最后三个元素

wfauudbj  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(157)

我尝试使用jq从一个json对象中获取一个数组,我需要删除这个数组的最后三个元素,这就是我目前所做的:

echo '{ "tags": [ "2.9.7", "2.9.8", "2.9.9", "2.9.10", "2.9.11", "2.9.12" ]}' | jq -r '.tags | sort[:3][]'

给我2.9.10 2.9.11 2.9.12,但需要反过来。这些值应该被删除,所以结果应该是:

2.9.7 2.9.8 2.9.9
68bkxrlz

68bkxrlz1#

从倒数第三个元素[-3开始索引计数器,直到:]结束:

… | jq -r '.tags | sort[-3:][]'
2.9.7
2.9.8
2.9.9

但是,当你在这里对字符串进行排序时要注意,2.9.12将排在2.9.7之前,如果你想按版本号对数组进行排序(结构如图所示),在点处将它们拆分成数组,将项转换成数字,然后按版本号排序:
一个二个一个一个

相关问题