[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian] dselect lesen koennen



Christian H. Kuhn wrote:
>> > Ich hätte aber gerne mal eine Liste aller
>> > installierten/installierbaren Pakete.
>> dpkg --get-selections '*' > /pfad/datei
>
>Ist natürlich nicht so bequem wie dselect oder so ... hilft aber
>alles nix, muß man halt von Hand durch. Ich werde mir dpkg mal

dpkg --get-selections '*' | grep "install" | sed -e "s/`echo $'\t'`.*$//"

liefert z.B. nur die Pakete, bei denen in der Liste, die man mit get-selections
bekommen hat, das Wort install vorkommt. Das sind also mindestens die 
Pakete, die in der dselect-Liste den Status "install" haben. Leider sind
jetzt auch die mit dabei, die den Status "deinstall" haben. Du wirst also
selbst noch ein bißchen an dem sed-Skript basteln müssen. (Ich habe jetzt 
nicht nachgesehen, ob es womöglich auch noch ein Paket gibt, in dessen 
Paketname das Wort install vorkommt).

sed ist wirklich ein Tool, mit dem man sich beschäftigen sollte. Das hat mir
schon sehr oft gute Dienste geleistet. Besonders wenn es um kleine 
automatisierte Aufgaben geht. Die sed-Skripten sehen zwar immer aus wie 
eine Reihe Tippfehler, aber so schwer ist es nun auch wieder nicht. 

Das sed-Skript ist so aufgebaut (-e heißt "jetzt kommt das Skript"):

s heißt "such das, was zwischen dem ersten und zweiten Slash / steht und 
ersetze es durch das, was zwischen dem zweiten und dritten Slash steht.

Der Suchstring ist "ein Tabulatorzeichen" (das echo-Kommando in 
Backquotes), dann "ein beliebiges Zeichen" (der Punkt ist Wildcard) und 
"davon Null oder mehrere" (der Stern), "bis zum Zeilenende" (das 
Dollarzeichen). 

Der Ersetzungsstring ist der Leerstring.

Das Tabulatorzeichen bekomme ich immer nur mit "echo" in den sed-String
hinein. Der Ausdruch $'\t' ist in der Bash einer von den besonderen Strings
(such in man bash nach "Words  of  the  form $'string' are treated specially")
Und das ganze echo Kommando steht in Backquotes, es *ist* also ein Tab.

Jörn


-- 
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

1041 eingetragene Mitglieder in dieser Liste.


Reply to: