Загрузка gz файла с распаковкой и подменой

Искусство написания bash скриптов. Делимся своими наработками
Ответить
Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Загрузка gz файла с распаковкой и подменой

Сообщение ZEN » 11 фев 2017, 15:08

Скрипт загружает gz файл из интернета и пытается распаковать. Если проблем не возникло, то содержимое stats.txt файла подменяется свежезагруженным. При любом исходе временный файл удаляется при завершении работы скрипта

Код: Выделить всё

#!/usr/bin/env bash

URL="https://github.com/matplotlib/sample_data/raw/master/screenshots/etopo20lats.gz";
OUT_FILE="$HOME/stats.txt";
TMP_FILE="$(mktemp)";

function finally () {
    rm "$TMP_FILE" 2>/dev/null;
}

trap finally EXIT;

curl -s "$URL" | zcat > "$TMP_FILE" && cat "$TMP_FILE" > "$OUT_FILE";

exit 0;
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: Загрузка gz файла с распаковкой и подменой

Сообщение nk » 26 апр 2017, 18:56

иногда бывает нужно посмотреть содержимое файла прям в терминале,
могу по команда (только если) добавить от себя

для .gz

Код: Выделить всё

$ wget -qO- ftp://ftp.gajim.org/debian/dists/unstable/main/source/Sources.gz | gzip -d 
для .xz

Код: Выделить всё

$ wget -qO- http://ppa.launchpad.net/zen-root/gxkb-stable/ubuntu/dists/devel/main/source/Sources.xz | xzcat

Дальше уже можно задействовать различные строчные операторы/редакторы и спокойно получать нужную информацию, прежде, само-собой желательно ознакомиться с содержимым. Так, н-р, в качестве примера:

запросим версию gajim, которая у них в репозитории имеется на данный момент

Код: Выделить всё

$ wget -qO- ftp://ftp.gajim.org/debian/dists/unstable/main/source/Sources.gz \
 	| gzip -d | grep -A3 -x "Package: gajim" | grep "Version:" \
 	| sed 's/Version: //'| sed -r 's/-.+//' 

Код: Выделить всё

$ wget -qO- ftp://ftp.gajim.org/debian/dists/unstable/main/source/Sources.gz  | gzip -d | grep -A3 -x "Package: gajim" | grep "Version:"  | sed 's/Version: //'| sed -r 's/-.+//' 
0.16.7
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей