Installierte Dateien

2006-07-05 Diskussionsfäden Goran
Hallo Leute,

ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
Beispiel:

So war es bisher...
# dpkg --listfiles mount
/.
/bin
/bin/mount
/bin/umount
/sbin
/sbin/swapon
/sbin/losetup
--Schnipp--

So soll es sein...
# unbekannter Befehl
mount
umount
swapon
losetu
--Schnipp--



-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Evgeni Golov
On Wed, 05 Jul 2006 15:01:06 +0200 Goran [EMAIL PROTECTED] wrote:

 Hallo Leute,
 
 ich habe ein Problem mit der Ausgabe von dpkg --listfiles
 Paketname. Und zwar möchte ich nur die Dateinamen ohne die
 Pfadangabe lesen. Ein Beispiel:
 
 So war es bisher...
 # dpkg --listfiles mount
 /.
 /bin
 /bin/mount
 /bin/umount
 /sbin
 /sbin/swapon
 /sbin/losetup
 --Schnipp--
 
 So soll es sein...
 # unbekannter Befehl
 mount
 umount
 swapon
 losetu
 --Schnipp--

Vielleicht:
dpkg -L paket |xargs -n1 basename



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Moritz Lenz
Hallo,

Goran wrote:
 ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
 Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
 Beispiel:

basename ist dein Freund.

 So war es bisher...
 # dpkg --listfiles mount
 /.
 /bin
 /bin/mount
 /bin/umount
 /sbin
 /sbin/swapon
 /sbin/losetup
 --Schnipp--
 
 So soll es sein...
 # unbekannter Befehl
 mount
 umount
 swapon
 losetu
 --Schnipp--

dpkg --listfiles mount | while read i; do if [ ! -d $i ] ; then
basename $i; fi; done;

HTH,
Moritz

-- 
Moritz Lenz
http://moritz.faui2k3.org/



signature.asc
Description: OpenPGP digital signature


Re: Installierte Dateien

2006-07-05 Diskussionsfäden Frank Terbeck
Goran [EMAIL PROTECTED]:
 ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
 Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
 Beispiel:
[...]

dpkg -L mount | while read file ; do echo ${file##*/} ; done

Gruss, Frank


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Bernd Warken

 -Ursprüngliche Nachricht-
 Von: Goran [EMAIL PROTECTED]

 ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
 Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
 Beispiel:
 
 So war es bisher...
 # dpkg --listfiles mount
 /.
 /bin
 /bin/mount
 /bin/umount
 /sbin
 /sbin/swapon
 /sbin/losetup
 --Schnipp--
 
 So soll es sein...
 # unbekannter Befehl
 mount
 umount
 swapon
 losetu
 --Schnipp--

Man könnte ein Shellskript verwenden, z.B.

for i in $(dpkg --listfiles mount); do test -f $i  basename $i; done

Bernd Warken

__
Erweitern Sie FreeMail zu einem noch leistungsstärkeren E-Mail-Postfach!

Mehr Infos unter http://freemail.web.de/home/landingpad/?mc=021131



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Frank Terbeck
Frank Terbeck [EMAIL PROTECTED]:
 Goran [EMAIL PROTECTED]:
  ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
  Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
  Beispiel:
 [...]
 
 dpkg -L mount | while read file ; do echo ${file##*/} ; done

Wobei das noch Verzeichnisse mit ausgibt, besser:

dpkg -L mount | while read file ; do [ ! -d $file ]  echo ${file##*/} ; done

Gruss, Frank


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Frank Küster
Goran [EMAIL PROTECTED] wrote:

 Hallo Leute,

 ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
 Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
 Beispiel:

 So war es bisher...
 # dpkg --listfiles mount
 /.
 /bin
 /bin/mount
 /bin/umount
 /sbin
 /sbin/swapon
 /sbin/losetup
 --Schnipp--

 So soll es sein...
 # unbekannter Befehl

$ for file in `dpkg --listfiles mount`; do basename $file; done

oder 

$ dpkg --listfiles mount | sed -e '[EMAIL PROTECTED]/\(.*\)@\1@'

(der sed- Befehl macht folgendes: [EMAIL PROTECTED]@...@ heisst ersetze das 
Muster
zwischen den ersten beiden @@ durch den Text zwischen den letzten
beiden.  .* sind möglichst viele beliebige Zeichen, / ist ein /, \(...\)
ist eine Gruppierung die wir später brauchen, darin wieder beliebig
viele beliebige Zeichen.  Das erste .* ist so gierieg dass es alle /
bis auf den letzten mit auffrisst.  Die Ersetzung enthält nur \1, das
ist der Bezeichner für die erste (und hier einzige) Gruppierung im
Suchmuster, also das nach dem letzten /.

Gruß, Frank
-- 
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Goran
Danke an alle für die prompten Antworten. Ich habe mir die Vorschläge
mal angeschaut und zusammengestellt um einen Überlick zu geben:

1. Vorschlag

dpkg -L paket |xargs -n1 basename

Leider liefert das Ergebnis auch die Verzeichnisse im Wurzelverzeichnis.
Bsp.:

dpkg -L mount |xargs -n1 basename
.   ---
bin ---
mount
umount
sbin---
[...]

2. Vorschlag

dpkg --listfiles paket | while read i; do if [ ! -d $i ] ; then
basename $i; fi; done;

Das Ergebnis scheint korrekt zu sein. Bsp.:

dpkg --listfiles mount | while read i; do if [ ! -d $i ] ; then
basename $i; fi; done;
mount
umount
swapon
losetup
[...]

3. Vorschlag

for i in $(dpkg --listfiles paket); do test -f $i  basename $i;
done

Das Ergebnis scheint korrekt zu sein. Bsp.:

for i in $(dpkg --listfiles mount); do test -f $i  basename $i; done
mount
umount
swapon
losetup

4. Vorschlag (korrigiert)

dpkg -L paket | while read file ; do [ ! -d $file ]  echo
${file##*/} ; done

Das Ergebnis scheint korrekt zu sein. Bsp.:

dpkg -L mount | while read file ; do [ ! -d $file ]  echo
${file##*/} ; done
mount
umount
swapon
losetup




-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Goran

Danke für das RegEx für sed aber wenn ich den Befehl eingebe erhalte ich
auch die Verzeichnisse im Wurzelverzeichnis...

dpkg --listfiles mount | sed -e '[EMAIL PROTECTED]/\(.*\)@\1@'
.   ---
bin ---
mount
umount
sbin---


 $ for file in `dpkg --listfiles mount`; do basename $file; done
 
 oder 
 
 $ dpkg --listfiles mount | sed -e '[EMAIL PROTECTED]/\(.*\)@\1@'
 
 (der sed- Befehl macht folgendes: [EMAIL PROTECTED]@...@ heisst ersetze das 
 Muster
 zwischen den ersten beiden @@ durch den Text zwischen den letzten
 beiden.  .* sind möglichst viele beliebige Zeichen, / ist ein /, \(...\)
 ist eine Gruppierung die wir später brauchen, darin wieder beliebig
 viele beliebige Zeichen.  Das erste .* ist so gierieg dass es alle /
 bis auf den letzten mit auffrisst.  Die Ersetzung enthält nur \1, das
 ist der Bezeichner für die erste (und hier einzige) Gruppierung im
 Suchmuster, also das nach dem letzten /.
 
 Gruß, Frank


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Installierte Dateien

2006-07-05 Diskussionsfäden Dirk Ullrich

Am 05.07.06 schrieb Goran [EMAIL PROTECTED]:

Hallo Leute,

ich habe ein Problem mit der Ausgabe von dpkg --listfiles Paketname.
Und zwar möchte ich nur die Dateinamen ohne die Pfadangabe lesen. Ein
Beispiel:

So war es bisher...
# dpkg --listfiles mount
/.
/bin
/bin/mount
/bin/umount
/sbin
/sbin/swapon
/sbin/losetup
--Schnipp--


Diese Fragestellung schreit geradezu nach einer Lösung mit dem
klassischen UNIX-Werkzeugkasten. Dieser enthält (mindestens)
eine Shell, grep, awk, sed und ein paar weitere kleine spezialisierte
Werkzeuge (Pakete mit diesem Zeugs enden oft auf utils und
haben eine hohe Priorität wie findutils, coreutils, ...). Genau
solche Lösungen wurden ja hier auch reichlich vorgeschlagen.

Wenn Du ernsthaft mit irgendeinem UNIX-artigen System
(das diesen Namen verdient) arbeiten willst, ist es m.E. eine
gute Idee, die klassischen UNIX-Werkzeuge beherrschen zu
lernen. Kann ich Dir aus eigener Erfahrung jedenfalls nur
wärmstens empfehlen!

Dirk