Я пытаюсь извлечь версия из URL-адреса, например
https://my.atlassian.com/download/feeds/current/confluence.json
Вот мой сценарий bash:
#!/bin/bash
# Get the actual version
url = "https://de.atlassian.com/software/confluence/download"
actual_version = "$(curl -s $url | grep -Po '(?<=version :)\d+' | head -1)"
echo $actual_version
К сожалению, он не дает мне только номер версии.
Есть идеи, как это сделать правильно?
Примечание: в вопросе было несколько улучшений / исправлений на основе комментариев.
Спасибо за Ваш ответ. Пытался, но не совпадал
Можете ли вы добавить пример их источника с упомянутым href = "<%= downloadLink %>"
, поскольку у читателей может быть не тот же источник, что вы видите (Например: я не вижу ссылок для загрузки .exe
, потому что я пользователь Linux, сайт предлагает мне загрузить Linux, когда я вызываю de.atlassian.com/software/confluence/download)
После тестирования их страницы загрузки может потребоваться javascript для замены ссылки для загрузки реальной ссылкой с версией. Может, лучше попробовать извлечь их JSON? Найдите "JSON" в их источнике. Я нашел эту страницу: my.atlassian.com/download/feeds/current/confluence.json
Вы изменили начальный URL. В новом URL-адресе вы указали https://confluence.atlassian.com/doc/confluence-release-notes-327.html
, это версия 327
, которую вы не хотите извлекать, верно?
Нет, версия находится в исходном коде в тегах <meta>: <meta name = "product-version" content = "6.11" /> - где 6.11 - это фактическая версия.
Я бы предложил использовать правильный парсер JSON, например jq
, за исключением того, что confluence.json
на самом деле не является действительным JSON. Я не уверен, почему JSON обернут в download(...)
, но без этого вы можете просто использовать что-то вроде curl ... | jq '.[].version'
. Это даст вам все версии; вы не указали, какой именно вам нужен.
TL; DR
Вот последняя команда для извлечения версии со страницы JSON:
curl -s "https://my.atlassian.com/download/feeds/current/confluence.json" | grep -Po '(?< = "version":")[^"]*' | head -1
6.11.0
Подробности
Посмотрите на этот URL, возвращающий JSON с версией продукта: https://my.atlassian.com/download/feeds/current/confluence.json
Вот копия исходного кода JSON на момент написания:
downloads([{"description":"6.11.0 - Linux Installer (64 bit)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0-x64.bin","tarUrl":null,"md5":"5ce76e5763b97b93db21ba447b5fb4f0","size":"564.1 MB","released":"12-Aug-2018","type":"Binary","platform":"Unix","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Windows Installer (64 bit)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0-x64.exe","tarUrl":null,"md5":"71c6f1275cc4ed6089871e5a7fd1f09b","size":"564.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Windows","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Standalone (TAR.GZ Archive)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0.tar.gz","tarUrl":null,"md5":"4c245b2b1dcc18ec9aff483c708f937e","size":"510.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Unix, Mac OS X","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Standalone (ZIP Archive)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0.zip","tarUrl":null,"md5":"f6d08f93840b92a2fbf9ac0005f249fb","size":"512.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Windows","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"}])
Здесь вы можете найти версию:
Это был быстрый поиск, вам лучше проверить, действительно ли слияние предоставляет REST api или какой-либо другой способ извлечь их информацию
Это очень хороший подход. Дай мне попытаться получить 'версию: *'
Хорошо, правильная строка: "curl -s my.atlassian.com/download/feeds/current/confluence.json | grep -Po '(? < = " Version ":") [^ "] *' | head -1" Вы можете добавить это к своему ответу, если хотите
Попробуйте сменить
[^;]
на[0-9.]