Am Dienstag, 18. Januar 2005 17:47 schrieb Marco Schuler:
Am Dienstag, 18. Januar 2005 17:21 schrieb Sören Wengerowsky: [..]
Oder sowas an den Anfang des Skriptes setzen: OIFS="$IFS"; IFS=$'\n'
Und ans Ende: IFS="$OIFS"
Das hat leider nur bedingt geholfen. Zwar wird jetzt der Dateiname als ganzes gesehen, doch pdftk meldet:
Error: Failed to open PDF file: Eine Datei mit Leerzeichen im Dateinamen.pdf Error: Failed to open PDF file: Eine weiter Datei mit Leerzeichen im Dateinamen.pdf Error: Failed to open PDF file: Und so weiter.pdf Errors encountered. No output created. Done. Input errors, so no output created.
OK. Dann liegt es also nicht am Script, sondern an den Dateinamen? Du könntest vorübergehend alle Dateinamen von Leerzeichen entfernen, und durch ein bestimmtes Zeichen ersetzen, und später wieder rückgängig machen.. Ich habe hier mal was versucht: Mal ein paar Dateien angelegt: soeren@linux:~/test> for i in `seq 1 20`; do touch "tr-test $i";done Nachgeguckt: soeren@linux:~/test> ls tr-test 1 tr-test 10 tr-test 11 tr-test 12 tr-test 13 tr-test 14 tr-test 15 tr-test 16 tr-test 17 tr-test 18 tr-test 19 tr-test 2 tr-test 20 tr-test 3 tr-test 4 tr-test 5 tr-test 6 tr-test 7 tr-test 8 tr-test 9 Das hier kommt an den Anfang des Skriptes (wandelt die Leerzeichen in _ um..) soeren@linux:~/test>for i in tr-test*; do mv "$i" `echo $i | tr ' ' '_'`; done soeren@linux:~/test> ls -1 tr-test_1 tr-test_10 [..] Und das hier kommt ans Ende, und macht das, was das oben gemacht hat, rückwärts... soeren@linux:~/test> for i in tr-test*; do mv "$i" "`echo $i | sed -e 's/_/\ /g'`"; done Und das klappt bei mir auch. soeren@linux:~/test> ls -1 tr-test 1 tr-test 10 tr-test 11 tr-test 12 [..] Wähle eventuell ein anderes Zeichen als _, wenn deine Dateinamen das sowieso schon enthalten... HTH Gruß Sören, auf die Gefahr hin, einen Useless-Award für die komischen Shell-konstruktionen zu bekommen...