我正在尝试获取最新版本的“spip”为此,我可以使用https://www.spip.net/spip_loader.api的 JSON 输出,但我不知道如何获取第二个记录密钥( 4.2.5) 在 bash 中使用 jq。
$ wget -q -O- https://www.spip.net/spip_loader.api | jq '.versions'
{
"dev": "spip/dev/spip-master.zip",
"4.2.5": "spip/archives/spip-v4.2.5.zip",
"4.1.12": "spip/archives/spip-v4.1.12.zip",
"4.0.11": "spip/archives/spip-v4.0.11.zip",
"3.2.19": "spip/archives/spip-v3.2.19.zip"
}
Run Code Online (Sandbox Code Playgroud)
我可以得到第三行,| sed -n '3p'但我发现它不是很干净,我认为完全使用 jq 会更合适。
我承认这更多是出于好奇而不是出于需要,因为我可以做其他事情。
您可以使用keys_unsorted按表示顺序获取键列表,然后获取第二个键(在索引 1 处):
jq -r '.versions | keys_unsorted[1]'
Run Code Online (Sandbox Code Playgroud)
获取“最新版本”很大程度上取决于版本号的构造方式。您的样本表明仅考虑数字就足够了。因此,从键中去除连续的数字,将它们转换为数字,并由此获得最大值:
jq -r '.versions | keys_unsorted | max_by([scan("\\d+") | tonumber])'
Run Code Online (Sandbox Code Playgroud)
输出:
4.2.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |