2013-06-27 14 views
16

Meine Anforderung ist es, alle CSV-Dateien in einem Ordner anhängen und senden sie in einer einzigen Mail.Mutt-Befehl mit mehreren Anlagen in Single-Mail-Unix

Hier ist das, was haben versucht,

mutt -s "subject" -a *.csv -- [email protected] < subject.txt 

Der obige Befehl funktioniert nicht (es ist nicht möglich, mehrere Dateien zu erkennen) und wirft den Fehler

Error sending message, child exited 67 (User unknown.). 
Could not send the message. 

Dann versuchte ich mehrere -a Option wie folgt ,

mutt -s "subject" -a aaa.csv -a bbb.csv -- [email protected] < subject.txt 

Dies funktioniert wie erwartet. Aber das ist nicht möglich für 100 Dateien zum Beispiel. Ich sollte es mit Dateimaske verwenden können (wie * .csv, um alle CSV-Dateien zu nehmen). Gibt es irgendeine Möglichkeit, wie wir * .csv in einem einzigen Befehl verwenden können?

Dank

+1

Welche Version von mutt verwenden Sie? Ein Befehl wie der erste Versuch funktionierte für mich mit meiner Kopie, die aus einer aktuellen Version des Merkur-Repositorys kompiliert wurde, aber die Unterstützung dafür begann mit der Version 1.5.15. – qqx

+0

@qqx Oh ist es? Es ist großartig dann. Ich benutze Mutt 1.4.1 .. – Mari

Antwort

21

Mutt nicht solche Syntax unterstützen, aber es bedeutet nicht, es ist unmöglich. Sie müssen nur den Befehl mutt erstellen.

mutt -s "subject" $(printf -- '-a %q ' *.csv) ... 

Der Befehl in $(...) etwas wie folgt erzeugt:

-a aaa.csv -a bbb.csv -a ... 
+1

vielen Dank. "printf - '-a% q' * .csv" liebe das. – Mari

0

Ich erhalte Backslash (\) Zusätzlich

Daily_Batch_Status{20131003}.PDF 
Daily_System_Monitoring{20131003}.PDF 

printf -- '-a %q ' *.PDF 
-a Daily_Batch_Status \ {20131003 \ }.PDF -a Daily_System_Monitoring \ {20131003 \ }.PDF