Как использовать групповые символы с aptitude?


22

Есть ли способ использовать шаблоны с aptitudeтакими, как в следующем:

sudo apt-get remove openoffice*.*

Ответы:


16

http://ubuntuforums.org/showthread.php?t=228309 указывает, что это возможно с помощью таких конструкций, как, ~n<package name>и это подтверждается руководством пользователя http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ ch02s03s02.html .

~nin ~n<package name>- это шаблон поиска подходящих имен пакетов. Также возможно сопоставить другие поля, кроме имен пакетов, см. Http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Вот пример. Скажем, что вы хотите aptitudeпоказать каждый пакет с «красным смещением» в своем имени, тогда вы выпускаете

aptitude show ~nredshift

Он должен сочетаться с другими опциями aptitude, такими как установка и удаление, например, для удаления всех установленных пакетов с openoffice в названии, которое вы выдаете.

sudo aptitude -P remove ~nopenoffice

Обязательно используйте эту -Pопцию при использовании шаблонов поиска, чтобы заставить aptitude отображать подсказку перед загрузкой, установкой или удалением пакетов (шаблон поиска может иметь много совпадений, и вам потребуется запрос перед выполнением действия).

Одна вещь, которую я не разработал, это как получить точную функциональность подстановочных знаков, например, которая openoffice*соответствует каждой строке, начинающейся с «openoffice» ( ~nopenofficeсоответствует любой строке, содержащей «openoffice»). Возможно, возможен обходной путь, например, для поиска установленных пакетов с определенной строкой в ​​их именах, а затем добавьте в aptitude свои имена.


-P предназначен для того, чтобы никогда не
переходить

Также использование ~ nredshift не будет искать красное смещение, но ~ nredshift. Также ~ n не является аргументом по умолчанию
ранчо

Ответ, данный NorticUs, является совершенно правильным. Правильный синтаксис здесь будет ~ n ^ redshift
ранчо

5

Вы просто помещаете это в кавычки:

sudo apt-get remove "openoffice*"

В противном случае оболочка попытается сопоставить это с файлами вашего текущего рабочего каталога.


5
Вопрос о aptitudeи нет apt-get. Это решение не работает с aptitude.
NN

@ MichałŠrajer: расширение кавычек не происходит в кавычках, как одиночных, так и двойных
enzotib

@enzotib: Моя ошибка. Спасибо за указание на это. Удален комментарий.
Михал Шрайер

хорошо, я не понимаю ... так можно сделать с aptitude или работать таким образом ... sudo aptitude удалить "openoffice *"
raulricardo21

@ raulricardo21 То же самое можно сделать с aptitude, см. мой ответ .
NN

4

Чтобы сопоставить строки, начинающиеся с имени пакета, добавьте ^перед ним.
например:aptitude search ~n^openoffice


Я делаю только часть поиска, вы должны также упомянуть, как получить результат поиска
ранчо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.