Перечислите имена всех пакетов, начинающихся с определенного слова

Скажем, я хочу установить все пакеты ubuntu-wallpapers, поэтому я ввожу в терминал следующее:

sudo apt install ubuntu-wallpapers*

Я пытаюсь получить тот же эффект, используя

dpkg --set-selections < ./pkgs.txt

Проблема в том, что этот метод не поддерживает подстановочный знак * в файле pkgs.txt.

Мне удалось получить точный список пакетов, используя

apt-cache search ^ubuntu-wallpapers

, но я тоже получаю описания. Есть ли способ получить только имена пакетов, чтобы я мог перенаправить вывод в файл pkgs.txt?

3
задан 11 January 2018 в 13:22

1 ответ

Вы можете использовать apt-cache pkgnames для перечисления только имен всех пакетов, начинающихся с определенного префикса:

$ apt-cache pkgnames ubuntu-wallpaper
ubuntu-wallpapers-karmic
ubuntu-wallpapers-vivid
ubuntu-wallpapers-maverick
ubuntu-wallpapers-utopic
ubuntu-wallpapers-wily
ubuntu-wallpapers-quantal
ubuntu-wallpapers-raring
ubuntu-wallpapers-precise
ubuntu-wallpapers-lucid
ubuntu-wallpapers-natty
ubuntu-wallpapers
ubuntu-wallpapers-trusty
ubuntu-wallpapers-oneiric
ubuntu-wallpapers-saucy
ubuntu-wallpapers-xenial

См. man apt-cache для получения дополнительной информации.

В качестве альтернативы, вы можете обработать вывод apt-cache search и отобразить только первый столбец, например, по конвейеру. через одну из этих команд ниже или что-нибудь подобное:

  • cut -d' ' -f1
    
  • grep -Eo '^\S+'
    
  • sed 's/\s.*//'
    
  • awk '{print $1}'
    
4
ответ дан 11 January 2018 в 13:22

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

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