Официальная ссылка на формат версии пакета Debian находится в Руководстве по политике Debian. Формат разработан, чтобы позволить "разумно выглядящие" номера версий с хорошо определённым (хотя и несколько сложным) отношением сравнения, чтобы решить, когда версия является более новой, чем другая.
В большинстве случаев сравнение представляет собой лексикографическое сравнение строки. Например, 1foo
сортируется перед 1ga
. Однако последовательности цифр сравниваются в числовом порядке, поэтому foo10bar
сортируется после foo9bar
.
При лексикографическом порядке строка всегда сортируется перед своим префиксом. Символ тильда позволяет отклониться от этого: foo~bar
всегда сортируется перед foo
, а также перед любой версией, начинающейся с foo
, за которой следует символ, отличный от ~
. Это часто используется для бета-версий: 8u60~b22
сортируется перед 8u60
. Я не знаю, почему пакеты OpenJDK 8 чередуются между суффиксами -b
и ~b
. Суффиксы
Tilde также используются для бэкпортов всех видов. Например, если одна и та же версия пакета присутствует в стабильном и тестируемом Debian, а исправление безопасности должно попасть в стабильный, то пакет в стабильном будет иметь суффикс типа -2~deb1
, а версия в тестируемом (скомпилированная с более новыми библиотеками) будет иметь -2
; Таким образом, пакет является обновлением версии -1
, но если система обновляется со стабильной на тестовую, то стабильная версия -2~deb1
будет обновлена до тестовой версии -2
. Официальные бэкпорты используют ~bpoЧИСЛО
для той же цели, таким образом версия 4.2~bpo7
будет обновлена до 4.2
, если она когда-нибудь появится в основном дистрибутиве.
В XPATH @
указывает на имя атрибута. Для создания записей csv на основе значений атрибутов каждого узла <row>
используйте следующий подход:
xmlstarlet sel -T -t -m 'badges/row' -v \
'concat(@Id, ",", @UserId, ",", @Name, ",", translate(@Date," ",""),
",", @Class, ",", @TagBased)' -n Badges.xml
Выход:
1,1,Autobiographer,2016-08-02T15:56:07.133,3,False
2,8,Autobiographer,2016-08-02T15:56:07.133,3,False
3,9,Autobiographer,2016-08-02T15:56:07.133,3,False
4,19,Autobiographer,2016-08-02T15:56:07.133,3,False
5,27,Autobiographer,2016-08-02T15:56:07.133,3,False