Wie verwende ich Wildcards mit Begabung?

22

Gibt es eine Möglichkeit, Platzhalter aptitudewie die folgenden zu verwenden:

sudo apt-get remove openoffice*.*
raulricardo21
quelle

Antworten:

16

http://ubuntuforums.org/showthread.php?t=228309 gibt an, dass dies über solche Konstrukte möglich ist ~n<package name>und dies durch das Benutzerhandbuch http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ bestätigt wird. ch02s03s02.html .

~nin ~n<package name>ist ein Suchmuster für übereinstimmende Paketnamen. Es ist auch möglich, andere Felder als die Namen der Pakete zuzuordnen, siehe http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Hier ist ein Beispiel. Angenommen, Sie möchten aptitudejedes Paket mit "Rotverschiebung" im Namen anzeigen, dann geben Sie es aus

aptitude show ~nredshift

Es sollte mit anderen aptitude-Optionen kombinierbar sein, wie z. B. Installieren und Entfernen, um z. B. alle installierten Pakete mit openoffice in dem von Ihnen angegebenen Namen zu entfernen

sudo aptitude -P remove ~nopenoffice

Stellen Sie sicher, dass Sie diese -POption verwenden, wenn Sie Suchmuster verwenden, um zu erzwingen, dass vor dem Herunterladen, Installieren oder Entfernen von Paketen eine Eingabeaufforderung angezeigt wird (das Suchmuster kann viele Übereinstimmungen aufweisen und Sie sollten vor dem Ausführen einer Aktion zur Eingabe aufgefordert werden).

Eine Sache, die ich nicht herausgefunden habe, ist, wie man die genaue Funktionalität von Platzhaltern erhält, zB die openoffice*zu jedem String passt, der mit "openoffice" beginnt ( ~nopenofficepasst zu jedem String , der "openoffice" enthält). Möglicherweise ist eine Problemumgehung möglich, z. B. um nach installierten Paketen mit einer bestimmten Zeichenfolge in ihren Namen zu suchen und dann aptitude mit ihren Namen zu versorgen.

NN
quelle
-P ist dafür gedacht, niemals symbolischen Links zu folgen, nicht dazu auffordern
Rancho
Auch mit ~ nredshift wird nicht nach Rotverschiebung gesucht, sondern nach ~ nredshift. Auch ~ n ist standardmäßig kein Argument
Rancho
Die Antwort von NorticUs ist absolut korrekt. Die korrekte Syntax hier wäre ~ n ^ Rotverschiebung
rancho
5

Sie haben es einfach in Anführungszeichen gesetzt:

sudo apt-get remove "openoffice*"

Andernfalls würde die Shell versuchen, dies mit den Dateien Ihres aktuellen Arbeitsverzeichnisses abzugleichen.

aquaherd
quelle
5
Die Frage ist ungefähr aptitudeund nicht apt-get. Diese Lösung funktioniert nicht mit Eignung.
NN
@ MichałŠrajer: keine Pfadname Expansion in Anführungszeichen auftreten, sowohl Einzel- als auch Doppel
enzotib
@enzotib: Mein Fehler. Vielen Dank für den Hinweis. Kommentar entfernt.
Michał Šrajer
ok, ich verstehe nicht ... kann also mit aptitude erledigt werden oder auf diese Weise arbeiten ... sudo aptitude "openoffice *" entfernen
raulricardo21
@ raulricardo21 Ähnliches kann man mit Eignung machen, siehe meine Antwort .
NN
4

Wenn Sie Zeichenfolgen zuordnen möchten, die mit einem Paketnamen beginnen, müssen Sie ein voranstellen ^.
z.B:aptitude search ~n^openoffice

Euan Thoms
quelle
Ich mache nur die Suche Teil, sollten Sie auch erwähnen, wie das Suchergebnis zu bekommen
Rancho