使用Unix邮件,附带错误文件

时间:2012-09-26 10:22:12

标签: unix grep xargs mailx

我有两个文件(.csv)说File1.csvFile2.csv带有'INVALID'记录,这些记录是在Informatica作业结束时生成的。

我使用下面的命令搜索文件名'INVALID',然后如果其中一个文件有'INVALID'个记录,我必须邮寄该特定文件,如果两个文件都有无效记录,那么文件必须邮寄给用户。

$ grep -il "invalid" File1.csv File2.csv | xargs -I'{}' uuencode {} | mailx -s"files" mymail@gmail.com

我收到附有两个文件但没有记录的邮件。

我也尝试使用-a附加文件:

$ grep -il "invalid" File1.csv File2.csv | xargs -I'{}' mailx -s"files" -a {} mymail@gmail.com

但是上面的命令引发错误:

mailx: illegal option -- a
Usage: mailx -eiIUdFntBNHvV~ -T FILE -u USER -h hops -r address
             -s SUBJECT -f FILE users

1 个答案:

答案 0 :(得分:0)

我认为 grep 中的选项是您出错的地方。 “l”(小L)选项用于打印文件名而不是文件内容,基于grep man:

  -l, --files-with-matches
      Suppress normal output; instead print the  name  of  each  input
      file  from  which  output would normally have been printed.  The
      scanning will stop on the first match.

因此,如果您只是从第一个命令中删除“-l”,我认为它会通过电子邮件向您发送您需要的文件内容,因此命令如下:

$ grep -il "invalid" File1.csv File2.csv | xargs -I'{}' uuencode {} | mailx -s"files" mymail@gmail.com