Skript um zip.Dateien in Textprogr.einzulesen
Wenn ich in Netscape einen .zip Anhang öffnen will, muss ich jetzt die Datei umständlich kopieren, entpacken und in einem Textprogramm lesen. Ich würde es gerne so einrichten, dass statt das sich ein Dialog zum Speichern öffnet, wie jetzt, von Netscape ein entsprechendes PROGRAMM selbständig gestartet wird, das die ZIP.Datei entpackt, und gleich in "antiword" einliest. Ist das möglich? Wie sähe ein entsprechendes Skript aus? Für Hilfen bin ich sehr dankbar. Erika
Hallo Erika, * Am 25.02.2002 um 15:12 Uhr schrieb Erika Mannheim:
Wenn ich in Netscape einen .zip Anhang öffnen will, muss ich jetzt die Datei umständlich kopieren, entpacken und in einem Textprogramm lesen.
Ich würde es gerne so einrichten, dass statt das sich ein Dialog zum Speichern öffnet, wie jetzt, von Netscape ein entsprechendes PROGRAMM selbständig gestartet wird, das die ZIP.Datei entpackt, und gleich in "antiword" einliest.
Ist das möglich? Wie sähe ein entsprechendes Skript aus?
Für Hilfen bin ich sehr dankbar.
hier ein kleines Beispielscript (ungetestet): ---[ schnipp ]--- #!/bin/bash TMPFILE=/tmp/zip2antiword.~$$ trap "rm -f $TMPFILE" 1 2 3 15 zcat "$1" >$TMPFILE antiword $TMPFILE rm -f $TMPFILE ---[ schnapp ]-- Ob <antiword> allerdings so gestartet werden kann, weiß ich nicht... Versuch es einfach mal ;-) Im Netscape kannst Du das Script dann folgendermaßen eintragen: Bearbeiten Einstellungen... "Zip Compressed Data" => [ Bearbeiten ] Programm: /pfad/zum/script %s Die Sache hat allerdings einen Haken! Soll wirklich jedes zip-Archiv mit <antiword> bearbeitet werden? Jürgen PS. Du solltest die Datei unter <antiword> dann aber unter einen neuen Namen speichern. Die temp. Datei wird am Script-Ende immer gelöscht. -- Die meißten Hühner werden schon als Eier in die Pfanne gehauen / Registered Linux-User #130804 http://counter.li.org \ \ Linux Stammtisch Bremerhaven http://linux.hs-bremerhaven.de /
Juergen Schwarting wrote:
Hallo Erika,
* Am 25.02.2002 um 15:12 Uhr schrieb Erika Mannheim:
Wenn ich in Netscape einen .zip Anhang öffnen will, muss ich jetzt die Datei umständlich kopieren, entpacken und in einem Textprogramm lesen.
Ich würde es gerne so einrichten, dass statt das sich ein Dialog zum Speichern öffnet, wie jetzt, von Netscape ein entsprechendes PROGRAMM selbständig gestartet wird, das die ZIP.Datei entpackt, und gleich in "antiword" einliest.
Ist das möglich? Wie sähe ein entsprechendes Skript aus?
Für Hilfen bin ich sehr dankbar.
hier ein kleines Beispielscript (ungetestet):
---[ schnipp ]--- #!/bin/bash
TMPFILE=/tmp/zip2antiword.~$$ trap "rm -f $TMPFILE" 1 2 3 15
zcat "$1" >$TMPFILE antiword $TMPFILE rm -f $TMPFILE ---[ schnapp ]--
Herzlichen Dank für das Skript. Es läuft leider noch nicht ganz wunschgemäss: Einmal sind in der fraglichen ZIP.Datei z w e i doc.Dateien eigepackt. und es kommt der Fehler: "zcat /tmp/MO..:ZIP has more than one entry--rest ignored" Da liegen die Dinge also noch komplizierter. (Nicht klar ist mir auch, was es mit der Zeile "trap "rm -f $TMPFILE" 1 2 3 1" auf sich hat?) Ein Kommando "trap" existiert hier nicht. das Zweite ist :
Ob <antiword> allerdings so gestartet werden kann, weiß ich nicht... Versuch es einfach mal ;-)
Es geht prinzipiell. Das Problem ist aber, dass "antiword" die Textdatei, im Fenster für die Subprozesse von Netscape anzeigt und dann nur soviel Text, wie auf diese Seite passt: <<stderr diagnostics have beeen truncated>> Ich habe einmal versucht, dein Skript dahingehend zu ändern, dass "antiword" in einem "xterm" Fenster und mit "| more" aufgerufen wird, um dem abzuhelfen. Also so: "xterm -e /home/erika/bin/antiword $TMPFILE|more" Das funktioniert aber nicht wunschgemäss. Der Xterm-Prozess wird nach dem Einlesen des (ersten) Dokumentes abgebrochen. Damit komme ich also momentan nicht richtig weiter.
Die Sache hat allerdings einen Haken! Soll wirklich jedes zip-Archiv mit <antiword> bearbeitet werden?
Eigentlich nur doc.Dateien. Vielleicht könnte man ja einen Test vorweg setzen, der mithilfe "zcat -l" den Inhalt des Zipfiles überprüft. Ich habe das einmal mit "cut" angefangen, bin aber an meinen mangelnden Skriptkenntnissen gescheitert. Ich hoffe, dass du mir noch weiter helfen kannst. Erika
Hallo Liste! Also als erstes halte ich das bisherige vorgehen für - sagen wir es mal vorsichtig - riskant. Das, was Du da dem Netscape sagst, macht er immer so! Also wirklich immer! Wenn Du Dir also ein zip-File mit Bildern runterziehst, dann hast Du keine doc-Dateien also ist auch Antiword falsch. Ich würde da einen anderen Weg gehen! Er soll die Datei ja ruhig zwischenspeichern und auch temporär entpacken (unzip würde ich da als Befehl vorschlagen!). Dann kann das Script mehrere Dinge machen z.B. in das temporäre Verzeichnis gehen und da dann suchen: find . -type f -name "*.doc" Da kann man dann mittels "-exec" oder "| xargs" Kommandos ausführen, so dass Du dann z.B. gifs und jpg anzeigst, doc-Files anzeigst und so weiter! Hier kannst Du dann z.B. auch mittels for-schleife im Script einiges machen. Wenn Du irgendwelche Prozesse wie xterms startest, dann sollen die ja vielleicht offen bleiben, auch wenn das Script selbst beendet ist! (Ich würde vielleicht ans Ende noch ein xterm setzen, welches nur einen Dialog anzeigt: Files löschen ja / nein und bei ja das temporäre Verzeichnis löscht. Natürlich ruhig Dateiname des Zipfiles und temporäres Verzeichnis anzeigen!) Hier sind der Fantasy keine Grenzen gesetzt! Aber ich selbst habe etwas gegen solche Automatismen, denn genau die sind es, die doch gerade Outlook und Co so unsicher machen! Na klar ist es bequem, aber ich finde es bequem genug, wenn ich das Zip-File abspeichere und dann in KDE das Zipfile entpacke und mir dann die Dateien entsprechend öffne. Da verbinde ich lieber *.doc in KDE mit antiword und so! Aber das ist natürlich auch nur meine Meinung und jeder soll sich das System so aufbauen, wie er damit am Besten arbeiten kann. Und ich denke, ich habe da auch wieder interessante Anregungen geben können. Ach ja - da fällt mir ein: Die Rückgabewerte eines unzip und so sollte man natürlich auch beachten! Und zum Schluss natürlich auch der Verweis auf LDP/ABS! Also im Linux Document Project gibt es eine Advanced Bash-Scripting Guide! --> http://www.linuxdoc.org/guides.html bzw. gleich ----> http://www.linuxdoc.org/LDP/abs/html/index.html Mit den allerbesten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Konrad Neitzel wrote:
Hallo Liste!
Also als erstes halte ich das bisherige vorgehen für - sagen wir es mal vorsichtig - riskant.
(... viele weitere sehr beachtenswerte Aussagen. Danke!)
Und zum Schluss natürlich auch der Verweis auf LDP/ABS! Also im Linux Document Project gibt es eine Advanced Bash-Scripting Guide!
--> http://www.linuxdoc.org/guides.html bzw. gleich ----> http://www.linuxdoc.org/LDP/abs/html/index.html
Und auch sehr gut - und in Deutsch geschrieben: http://www.koehntopp.de/kris/artikel/unix/shellprogrammierung/shellprogrammi... Erika
participants (3)
-
Erika Mannheim
-
Juergen Schwarting
-
Konrad Neitzel