Проблема регулярного выражения, не находя результаты я ожидаю

Я пишу сценарий для установки некоторых вещей, и я испытываю затруднения из-за регулярного выражения, которое я использую. У меня есть Винный репозиторий в моих способных источниках (ppa:ubuntu-wine/ppa), и я использую следующую команду:

    apt-cache search wine[0-255].[0-255] | sort -nr

Теперь я ожидал получать 'wine1.7' наверху списка, но он даже не перечислен.

Вместо этого, если я работаю:

    apt-cache search wine | sort -nr

Я получаю намного более длинный список (очевидно), он содержит 'wine1.7'. Список, который сбои действительно показывают нескольким корректным объектам, которые соответствуют моему regex, но не столько сколько без. Это несколько примеров:

  • wine1.7-i386 - Слой Совместимости Microsoft Windows (32-разрядная поддержка)
  • wine1.7-amd64 - Слой Совместимости Microsoft Windows (64-разрядная поддержка)
  • wine1.5 - Слой Совместимости Microsoft Windows (фиктивный пакет)
  • wine1.5-i386 - Слой Совместимости Microsoft Windows (32-разрядная поддержка)
  • wine1.5-dev - Слой Совместимости Microsoft Windows (64-разрядная поддержка)

Поскольку Вы бьете тростью, видят, что 'wine1.5' является списком, но не 'wine1.7'. Существует ли лучший способ получить этот тип списка?

Или еще лучше простой способ найти, что последняя версия из списка устанавливает?

Спасибо, Noki

1
задан 9 March 2014 в 03:24

1 ответ

Это не то, как классы символов работают, regex не дифференцируется между 26 и 2 сопровождаемый 6, таким образом, Ваш класс символов интерпретируется как 1-2 или 5. Кроме того, эти . означает, "соответствуют любому символу", не литерал ., я не думаю apt, regex механизм позволяет выходить, таким образом, необходимо было бы использовать класс символов для соответствия ему ([.]). Наконец, у Вас должно быть несколько случаев каждого числа, таким образом, Вам нужно что-то как:

apt-cache search --names-only wine[0-9]+[.]*[0-9]*

Эти --names-only гарантирует, что Ваш regex только подобран agaist имена пакета, не описания.

2
ответ дан 11 November 2019 в 09:41

Другие вопросы по тегам:

Похожие вопросы: