Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File talend tsendmail如何使用正则表达式过滤文件?_File_Talend - Fatal编程技术网

File talend tsendmail如何使用正则表达式过滤文件?

File talend tsendmail如何使用正则表达式过滤文件?,file,talend,File,Talend,我想向负责每个产品的特定人员发送电子邮件,因此我想向这些人员发送一封包含同一目录中所有相关产品文件的电子邮件。我所能做的就是使用filter遍历存储库中的文件,但我所做的只是过滤扩展名为.csv或.txt的文件,但这意味着所有文件都将发送给每个人。请提供有关在tsendmail组件中使用正则表达式过滤器的任何帮助??或者在tsendmail中传递这些过滤文件的方法,意味着如何将文件列表发送到tsendmail,就像我们处理电子邮件列表一样?这里不需要Regex,您可以用一个简单的tMap来完成

我想向负责每个产品的特定人员发送电子邮件,因此我想向这些人员发送一封包含同一目录中所有相关产品文件的电子邮件。我所能做的就是使用filter遍历存储库中的文件,但我所做的只是过滤扩展名为.csv或.txt的文件,但这意味着所有文件都将发送给每个人。请提供有关在tsendmail组件中使用正则表达式过滤器的任何帮助??或者在tsendmail中传递这些过滤文件的方法,意味着如何将文件列表发送到tsendmail,就像我们处理电子邮件列表一样?

这里不需要Regex,您可以用一个简单的tMap来完成

t将
*.*.csv
作为文件掩码的文件列表

使用滴度ToFlow来处理tFileList输出。创建一个包含3列的架构。“产品”列包含从文件名中提取的产品名称:
((字符串)globalMap.get(“tFileList\u 1\u CURRENT\u FILE”)).split(“\u”)[0])

使用电子邮件加入产品的tMap。tFixedFlowInput用于将产品映射到电子邮件(文件会更好,这样您就可以在不重建的情况下添加/删除产品/电子邮件)

最后,tSendMail使用来自tMap的流将处理后的文件作为附件发送邮件。

这里有一个可行的想法,从一开始,在临时目录中创建动态文件名,而不是使用tfile获取这些动态文件并将每个文件发送给他们。

给出一些要筛选的文件名示例。这些文件类似于“Productname\u date.csv”,我想说的是这些文件上的类似循环,*如果product1使用名称发送文件“product1_TODAY.csv”发送至电子邮件:product1incharge@x.com*如果product2发送名为“product2_TODAY.csv”的文件“发送电子邮件:product2incharge@x.com但我不能在tsendmail组件中这样说,所以我需要以某种我不知道如何进行的方式对这些文件进行迭代,并在每次将文件发送到它对应的电子邮件时,让我们假设我有一个Tflexfix,它为每种产品提供了一封电子邮件的列表。谢谢大家,有很多好主意要遵循,我会尝试它,它应该工作良好。请您的答案包括一些代码的解决方案的例子。看,谢谢,它也起作用了。