最近,MaxMind更改了其下载策略,并且旧的简单格式不再可用。新文件格式如下所示:GeoLite2-Country_20191231.tar.gz
,在内部,我们有一个同名文件夹,其中包含两个其他文件。
尽管可以从链接中删除date
参数,但似乎下载的文件仍将包含日期。
现在,问题在于以编程方式从具有该变量名称的gzip文件中提取GeoLite2-Country.mmdb
。
我的旧脚本中存在的解压缩部分是这样的:
gunzip -c "$1"GeoLite2-Country.mmdb.gz > "$1"GeoLite2-Country.mmdb
问题是如何针对新情况修改以上部分。或者,也许有人知道解决相同问题的另一种方法。预先感谢。
文件夹结构:
-+ Geolite2-Country_YYYYMMDD.tar.gz:
|-+ Geolite2-Country_YYYYMMDD
|- licence.txt
|- copyright.txt
|- Geolite2-Country.mmdb
我需要的是gzip文件当前文件夹中的Geolite2-Country.mmdb
。
您可以尝试以下代码段:
for i in *.tar.gz; do
date=$(echo "$i" | sed 's/GeoLite2-Country_\([0-9]*\)\.tar\.gz/\1/');
tar zxf "$i" GeoLite2-Country_$date/Geolite2-Country.mmdb
mv GeoLite2-Country_$date/Geolite2-Country.mmdb Geolite2-Country_$date.mmdb
rmdir GeoLite2-Country_$date
done
它通过在生成的mmdb中添加日期来处理多个输入文件。