Nifi:捕获文件名的中间部分

冗长的序言

我有许多文件要进入 HDFS,命名约定是这样的:

  • acme_beneficiary_20190820
  • acme_stats_20190820
  • acme_provision_20190820
  • acme_sponsor_20190820

我想使用下划线之间的段作为变量来制作 HDFS 路径,所以它看起来像这样:

/my/hdfs/directory/sponsor/2019/

我找到了一种分两步完成的方法,但我认为必须有一种方法可以一次性完成。对于第一步,我有一个“更新属性”处理器,它使用以下值创建一个变量“file_src”:

${filename:substringAfter('_')}

所以现在它将文件名视为“beneficiary_20190820”等。在此之后,我有另一个“更新属性”处理器,其中包含一个名为“dest”的变量,其值如下:

${file_src:substringBefore('_'):toLower()}

所以现在我的 hdfs 目录可以是这样的:

/my/hdfs/directory/${dest}/2019

它有效,但感觉笨重。有没有办法一步到位?我觉得也许这些表达式可以嵌套或其他东西。在此先感谢您的帮助。

达吉特

把一切都变成一个表达

${filename:substringAfter('_'):substringBefore('_'):toLower()}

你甚至可以在没有 UpdateAttribute 的情况下直接在 hdfs 目录表达式中使用这个表达式:

/my/hdfs/directory/${filename:substringAfter('_'):substringBefore('_'):toLower()}/2019

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将文件名的中间部分移到前面

来自分类Dev

将文件重命名为文件名的前缀和中间部分

来自分类常见问题

使用正则表达式获取文件名的中间部分

来自分类Dev

使用正则表达式获取文件名的中间部分

来自分类Dev

如何获得带有分隔符的文件名的中间部分?

来自分类Dev

在文件名中间添加0

来自分类Dev

cmd在文件名中间插入文本

来自分类Dev

从文件名中间删除\ r字符

来自分类Dev

使用basename捕获导致错误的文件名值的一部分

来自分类Dev

提取文件名部分以解决文件名冲突

来自分类Dev

读取文件名部分未知的文件

来自分类Dev

Shell - 如何重命名文件名中间的文件?

来自分类Dev

PHP包含部分文件名

来自分类Dev

删除部分文件名

来自分类Dev

删除部分文件名

来自分类Dev

找到部分文件名mlocate

来自分类Dev

文件名的R个可变部分

来自分类Dev

从powershell中的部分读取文件名

来自分类Dev

交换部分文件名

来自分类Dev

Nifi从CSV列值获取文件名

来自分类Dev

如何让zsh的补全工作在文件名中间?

来自分类Dev

在可执行目录中打开文件名*文件名部分未知的文件

来自分类Dev

使用python请求文件名捕获工具带

来自分类Dev

在Fat Free Framework中捕获上载的文件名

来自分类Dev

捕获变量中符号链接指向的文件名

来自分类Dev

使用python捕获文件名请求工具带

来自分类Dev

在Fat Free Framework中捕获上载的文件名

来自分类Dev

iOS使用带有部分文件名的文件

来自分类Dev

根据部分文件名打开多个Excel文件