linux-l: LM01/01: lesspipe.sh
Michael Wiedmann
mw at miwie.in-berlin.de
So Dez 17 13:18:10 CET 2000
Die Versuchung war groß, das im LM 01/2001 vorgestellte "lesspipe.sh"
(siehe Artikel: Bessere Sicht; Mehr betrachten mit less; S.172ff) so
zu erweitern, dass auch Debian-Archive bahandelt werden können.
Das einfache Auflisten des Archiv-Inhaltes bereitet keine
Schwierigkeiten und wird durch den zweiten Teil des anhängenden
Diffs abgehandelt (gegenüber lesspipe.sh das bei
http://www.ifh.de/~friebel/unix/lesspipe.html zu finden ist).
Mehr Schwierigkeiten bereitet die Erweiterung, Dateien aus einem Archiv
zu extrahieren und anzuzeigen (z.B.: less debian-file.deb:filename).
Mit "dpkg --fsys-tarfile debian-file.deb | tar xf - filename" kommt man
damit grundsätzlich zum Ziel, nur funktioniert die Einbindung in
lesspipe.sh so leider nicht.
Der erste Teil des Diff läuft eine Fehlermeldung von dpkg-deb hinaus:
dpkg-deb: --fsys-tarfile takes only one argument (.deb filename)
Da sind unsere Shell-Skript Experten gefragt, die ich hiermit bitte,
eine funktionierende Lösung beizusteuern :-)
Michael
--
mw at miwie.in-berlin.de http://www.miwie.org
mw at miwie.org http://wap.miwie.org
-------------- nächster Teil --------------
--- lesspipe.sh.org Sat Dec 16 19:03:45 2000
+++ lesspipe.sh Sun Dec 17 12:57:36 2000
@@ -147,6 +147,8 @@
if [[ "$file2" != "" ]]; then
if [[ "$1" = *tar* ]]; then
cmd="$tarcmd Oxf $2 $file2"
+ elif [[ "$1" = *Debian* ]]; then
+ cmd="dpkg --fsys-tarfile $2 | tar xf - $file2"
elif [[ "$1" = *RPM* ]]; then
cmd="isrpm $2 $file2"
elif [[ "$1" = *Zip* ]]; then
@@ -215,6 +217,9 @@
elif [[ "$1" = *roff* ]]; then
echo "======append $sep to filename to view the nroff source==============="
groff -s -p -t -e -Tascii -mandoc ${2#-}
+ elif [[ "$1" = *Debian* ]]; then
+ echo *"======use Deb_file${sep}contained_file to view a file in the Deb======"
+ dpkg -c ${2#-}
elif [[ "$1" = *executable* ]]; then
echo "======append $sep to filename to view the binary file================"
strings ${2#-}
Mehr Informationen über die Mailingliste linux-l