2013-06-27 262 views
16

我的要求是所有的.csv文件附加的文件夹中,并在单个邮件发送。狗命令UNIX

这里是什么都试过了,

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

上面的命令不工作(它不能识别多个文件),并引发错误

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

然后我试图使用多个-a选项,如下所示,

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

这按预期工作。 但是这对于100个文件来说是不可行的。我应该可以使用它与文件掩码(就像* .csv获取所有CSV文件)。在单个命令中有没有什么方法可以像* .csv一样使用?

感谢

+1

?像第一次尝试这样的命令用我的副本为我工作,并使用从最新版本的mercurial存储库编译而来的副本,但是从1.5.15版本开始支持。 – qqx

+0

@qqx哦,是吗?那太棒了。我使用Mutt 1.4.1 .. – Mari

回答

21

笨蛋不支持这样的语法,但它并不意味着它是不可能的。你只需要建立mutt命令。

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

$(...)的命令产生这样的:

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

非常感谢。 “printf - '-a%q'* .csv”喜欢这个。 – Mari

0

我您正在使用什么版本的狗的越来越反斜线(\)此外

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