Как я могу получить список пакетов, выбранных с помощью apt-get autoremove?

13

Есть ли команда, которая печатает только имя пакетов, которые apt-get autoremoveвыбирает? Я создаю скрипт, который обновляет ядро, удаляет старое ядро ​​и ненужные пакеты ( apt-get autoremove), но я хочу напечатать на экране список пакетов, которые будут удалены apt-get autoremove, как я могу это сделать?

Афонсу Соуза
источник
Вы должны просто иметь возможность запустить sudo apt-get autoremove -yего, и он должен
Попробуйте прочитать здесь: [Это может быть полезно
Даг
Чтобы получить список пакетов, не удаляя их на самом деле вы можете сделатьsudo apt-get --dry-run autoremove
heemayl
Я просто хочу получить имя пакета, а не весь вывод команды ....
Афонсу Соуза

Ответы:

13

Так как согласно вашему комментарию вы хотите перечислить только те пакеты, которые будут удалены:

apt-get --dry-run autoremove | grep -Po '^Remv \K[^ ]+'

grep разбивка команд:

  • -P: Интерпретирует данный шаблон как PCRE (Perl-совместимое регулярное выражение)
  • -o: Печатает только совпадающую строку вместо всей строки

Распределение регулярных выражений:

  • ^: соответствует началу строки
  • Remv: соответствует Remvстроке
  • \K: исключает ранее сопоставленную подстроку из сопоставленной строки
  • [^ ]+: соответствует одному или нескольким символам, а не
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 
кос
источник
1
@ GeekLynxAfonso, вам не нужно использовать sudoс --dry-runопцией.
Ярно
@jarno Имеет смысл, тот факт, что это, вероятно, не нужно, мне не приходило в голову. Спасибо
Кос
2

На самом деле вам нужно только отфильтровать вывод вашего

sudo apt-get autoremove --dry-run 

команда.

Например, вы можете сделать это с

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1
lemonslice
источник
Ваша команда тоже работает !! Но я предпочитаю команду Коса ... Но спасибо за то же самое !! :)
Афонсу Соуза