[gelöst] Befehl für Datein in Verzeichnissen, rekursiv

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mullers

[gelöst] Befehl für Datein in Verzeichnissen, rekursiv

Beitrag von mullers » 11.11.2009 12:51:43

Ich möchte einen Befehl für alle Dateien eines bestimmten Typs in einem Verzeichnis, inkl. Unterverzeichnisse ausführen.
Obwohl alle Befehle einzeln funktionieren, im Ganzen tun sie's nicht:

Code: Alles auswählen

for i in $(find . -name \*.doc); do wvPDF "$i" "$(basename "$i" .doc).pdf"; done
Gruesse
henry
Zuletzt geändert von mullers am 11.11.2009 14:47:28, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Befehl für Datein in Verzeichnissen, rekursiv

Beitrag von Meillo » 11.11.2009 13:11:25

Code: Alles auswählen

find . -name "*.doc" -exec wvPDF '{}' "`basename {} .doc`.pdf" \;
(ungetestet)
Use ed once in a while!

mullers

Re: Befehl für Datein in Verzeichnissen, rekursiv

Beitrag von mullers » 11.11.2009 14:46:59

Danke @Meillo, damit funktioniert es zumindest bei den meisten Dateien (was ausreichend ist).
Das sind alles so Dateien mit Lehrzeichen, (nicht Utf-8) Umlauten, und glaube sogar noch mit Sonderzeichen; die mit den Umlauten bleiben unbearbeitet, habe jetzt aber auch keine Luste die Dateien umzubenenen, wie gesagt, er reicht aus.

henry

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: [gelöst] Befehl für Datein in Verzeichnissen, rekursiv

Beitrag von chrisbra » 11.11.2009 20:58:29

Robust und portabel ist find in Verbindung mit -exec sh -c '...'

Code: Alles auswählen

find . -name "*.doc" -exec sh -c 'wvPDF "$1" "${1%.*}.pdf" ' find-sh '{}' \;
ungetestet.
Meine Whishlist
:wq!

Antworten