web-dev-qa-db-fra.com

Lister les noms de tous les paquets commençant par un mot spécifique

Supposons que je souhaite installer tous les packages ubuntu-wallpapers afin d'entrer les informations suivantes au terminal:

Sudo apt install ubuntu-wallpapers*

J'essaie d'obtenir le même effet en utilisant

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

Le problème est que cette méthode ne prend pas en charge le caractère générique * dans le fichier pkgs.txt.

j'ai pu obtenir la liste exacte des paquets en utilisant

apt-cache search ^ubuntu-wallpapers

mais je reçois aussi les descriptions. Existe-t-il un moyen d’obtenir uniquement les noms de package afin que je puisse rediriger la sortie vers le fichier pkgs.txt?

3
PenguinCSC

Vous pouvez utiliser apt-cache pkgnames pour répertorier uniquement les noms de tous les packages commençant par un préfixe spécifique:

$ 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

Voir man apt-cache pour plus d'informations.

Vous pouvez également traiter la sortie de apt-cache search et n’afficher que la première colonne en la canalisant, par exemple. via l'une de ces commandes ci-dessous ou quelque chose de similaire:

  • cut -d' ' -f1
    
  • grep -Eo '^\S+'
    
  • sed 's/\s.*//'
    
  • awk '{print $1}'
    
4
Byte Commander