我的脚本的一部分要求我下载最新版本的云图像示例
http://download.rockylinux.org/pub/rocky/8/images/
目前最新的是http://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-8.4-20210620.0.x86_64.qcow2
我如何能够从此链接使用curl
或wget
下载最新文件。.qcow2
问题是
- 文件名不断变化
- 可能有多个 .qcow2 文件
- 文件必须包含 GenericCloud
答案1
sort
有-V
选项:
-V, --version-sort natural sort of (version) numbers within text
所以,你可以使用curl | grep | sort -V
组合,例如:
wget "http://download.rockylinux.org/pub/rocky/8/images/$(
curl http://download.rockylinux.org/pub/rocky/8/images/ \
| grep -Po 'href="\K[^"]*GenericCloud[^"]' \
| sort -V \
| tail -n1)"
或者,如果您grep
没有-P
选择:
wget "http://download.rockylinux.org/pub/rocky/8/images/$(
curl http://download.rockylinux.org/pub/rocky/8/images/ \
| grep -o 'href="[^"]*GenericCloud[^"]' | grep -o '[^"]*\.qcow2' \
| sort -V \
| tail -n1)"