Nifi-在流文件属性中使用反斜杠(\)

时间:2019-03-22 17:24:49

标签: windows-10 apache-nifi

嗨,我正在尝试使用Nifi动态创建一个atrribute值,它看起来像这样

$(absolute.path:substringAfterLast('\'):trim)

我无法转义反斜线,对此有任何解决方法吗?

3 个答案:

答案 0 :(得分:1)

我们可以通过不同的方式实现这一目标。

>>> repr(numpy.float32(0.0005000000237487257)) '0.0005' >>> repr(numpy.float32(0.02500000037252903)) '0.025' >>> repr(numpy.float32(0.03999999910593033)) '0.04'

使用 Method1: 函数代替使用 substringAfterLast 函数来获取

之后的值

replaceAll

使用 UpdateAttribute 处理器

  • 添加新属性为

    \ (last backslash)

    val

${absolute.path:replaceAll('(.*)(?:\\\\(.*?))+$', '$2'):trim()}将提取上一个反斜杠后的值,并将regex属性值替换为提取的值。

(或)

absolute.path

使用 Method2: + substringAfterLast 功能

trim

答案 1 :(得分:1)

这应该做:${absolute.path:substringAfterLast('\\'):trim()}。 您的问题是,您使用()而不是{},没有在()函数之后添加trim,并且没有逃脱反斜杠。

这种方式有效。

答案 2 :(得分:0)

要添加到Shu's answer

您还可以使用Flowfile的path属性来检索其父目录。如果我有

C:\foo\bar\myfile.txt然后${path}会给您bar\

考虑到\如何给您@{absolute.path}

,我不知道您想对最后一个C:\something\like\this\之后的子字符串做什么?