Apache nifi 在NiFi中使用匹配模式压缩多个文件

Apache nifi 在NiFi中使用匹配模式压缩多个文件,apache-nifi,Apache Nifi,我正在尝试压缩前一个处理器生成的文件列表。名称是随机的,开始和结束是重复的 Ex: part-00000-1dfde626-2a4f-4bc2-aa43-eaf3c940b2a8-c000.csv part-00000-547c93da-088e-46c4-a478-a41aabfef9ea-c000.csv 我正在尝试使用ExecuteStreamCommandprocessor将所有文件压缩到一个文件中。下面是我的命令及其参数:它不工作 command: /bin/zip Argumen

我正在尝试压缩前一个处理器生成的文件列表。名称是随机的,开始和结束是重复的

Ex: 
part-00000-1dfde626-2a4f-4bc2-aa43-eaf3c940b2a8-c000.csv
part-00000-547c93da-088e-46c4-a478-a41aabfef9ea-c000.csv
我正在尝试使用
ExecuteStreamCommand
processor将所有文件压缩到一个文件中。下面是我的命令及其参数:它不工作

command: /bin/zip
Argument: finalCompressedFile.zip;part.*csv
regex
part.*csv
与生成的所有文件模式都匹配。但是
*
是(我怀疑的)作为文本传递给bashshell的。如果我只给出一个完整的文件名,它就完成了工作,但我不会压缩所有的文件


对此有什么想法吗?

您不能使用
ListFile
->
FetchFile
->
MergeContent
方法吗?它允许您提供文件名过滤器,
MergeContent
支持zip格式。
ListFile
不接受输入;我需要向执行此任务的任何进程/处理器提供输入。我知道
zip
命令不接受regex作为参数。它接受通常的shell文件匹配器,
只是一个点,
*
匹配任何字符的任何长度。我猜matcher应该是这样的:
part*.csv
对此不确定,但我在shell上测试了zip命令,就像上面提到的那样&它压缩了所有文件。当我从NiFi传过来时,它不起作用。另一方面,
part*.csv
不是查询中提到的文件名的有效正则表达式。有效的正则表达式是
part.*csv
。是否设置了
忽略输入流