Hallo, Am Mit, 06 Dez 2006, Matthias Müller schrieb:
Noch ne Lösung
for datei in $(ls *.doc) ^^^^^^^^^^^ Wat soll dat dann???
Das *.doc muss die Shell doch eh schon fuer ls expandieren, wozu dann noch das ls? Und ausserdem handelt man sich damit Probleme mit u.a. Leerzeichen ein. Also laesst man die shell das gleich komplett allein machen: for datei in *.doc; do
do antiword ${datei} > $(basename ${datei} ".doc").txt # alternativ: # antiword ${datei} > ${datei%%.*}.txt done
Wenn man hier noch quotet stoeren auch keine Sonderzeichen[1] mehr. antiword "${datei}" > "$(basename "${datei}" '.doc').txt" # bzw.: antiword "${datei}" > "${datei%.doc}.txt" HTH, -dnh [1] nichtmal ", ' oder ein Zeilenumbruch: ( set -x; f="foo.doc' \"bar* baz.doc"; echo "$(basename "$f" .doc).txt"; ) ( set -x; f="foo.doc' \"bar* baz.doc"; echo "${f%.doc}.txt"; ) Man beachte, mit welchen Argumenten basename und echo aufgerufen werden. Bei `` statt $() gibt's evtl. mit * und ? beim basename Probleme, das habe ich jetzt nicht mehr getestet. -- Ginsberg's Theorem: (1) You can't win. (2) You can't break even. (3) You can't even quit the game. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org