web-dev-qa-db-ja.com

apt-get autoremoveで選択されたパッケージのリストを取得するにはどうすればよいですか?

apt-get autoremoveが選択するパッケージの名前のみを出力するコマンドはありますか?カーネルを更新し、古いカーネルと不要なパッケージ(apt-get autoremove)を削除するスクリプトを作成していますが、apt-get autoremoveによって削除されるパッケージのリストを画面に印刷したいこれどうやってするの?

11
Afonso Sousa

コメント通り なので、削除されるパッケージのみをリストしたい:

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

grepコマンドの内訳:

  • -P:指定されたパターンをPCRE(Perl Compatible Regular Expression)パターンとして解釈します
  • -o:行全体ではなく、一致した文字列のみを出力します

正規表現の内訳:

  • ^:行の先頭に一致
  • RemvRemv文字列に一致
  • \K:一致した文字列から以前に一致した部分文字列を除外します
  • [^ ]+:1つ以上の文字と一致しません
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 
12
kos

実際には、あなたの出力をフィルタリングする必要があります

Sudo apt-get autoremove --dry-run 

コマンド。

たとえば、あなたはそれをすることができます

Sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1
2
lemonslice