Am Sonntag, 29. Februar 2004 11:30 schrieb Andreas Schmidt: [...] > Im konkreten Fall ging es darum, in einem Verzeichnis aus allen > Mailboxen bestimmte Header zu entfernen. Ich hatte dafuer eine > provisorische ~/.procmailrc angelegt (da die Mails ja schon > sortiert > > waren, konnten die sonst faelligen Filter entfallen) : > :0f > : > | formail -f -I Received: -I Envelope-to: -I Delivered-To: > | > :0 > mist
Das schiebt die Mails doch in ein Postfach mist - und der liegt im Verzeichnis $MAIL, oder? > Ich wollte jetzt fuer jede gefundene Mailbox procmail aufrufen > und die Datei "mist" umbenennen: > > find . -maxdepth 1 -type f -exec "cat {} | formail -s procmail; > mv mist {}.new" \; > > Hier gibt es dann die Fehlermeldung: > find: cat ./header | formail -s procmail; mv mist ./header.new: > No such file or directory s. o. - wahrscheinlich wird mist im aktuellen Verzeichnis nicht gefunden. > find . -maxdepth 1 -type f -exec cat \{\} | formail -s procmail; > mv mist \{\}.new \; > > ergibt > find: missing argument to `-exec' > mv: missing file argument Jepp - da Du die Befehlefolge nicht quotest, wird nur der Teil: cat \{\} für exec erkannt - und da fehlt eben das \; am Ende. Die Pipe gehört hier schon nicht mehr zum find. [...] > Darauf habe ich dann eine Shell-Funktion definiert: > prune() { > cat "$1" | formail -s procmail > mv mist "$1.new" > } > > Der Aufruf dieser Funktion aus find funktioniert nicht: > find . -maxdepth 1 -type f -exec prune {} \; > find: prune: No such file or directory > > Das liegt wohl daran, dass -exec eine eigene Shell oeffnet, in > der prune nicht definiert ist. Also im naechsten Schritt: Sehe ich auch so. > > prune () { cat "$1" | formail -s procmail; mv mist "$1.new"; }; > export prune; find . -maxdepth 1 -type f -exec "prune {}" \; > find: prune ./header: No such file or directory Kann es sein, dass der Konstrukt "prune {}" als _ein_ Kommando aufgefasst wird? Versuchs hier doch mal ohne "" - so wie oben. > Jetzt bin ich mit meinem Latein am Ende und dankbar fuer jeden > Hinweis. :-) Ich glaube. mit einem Shell-Script statt einer Funktion hättest Du weniger Sorgen. Jan -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)