Windows 10 Nifi-在流文件属性中使用反斜杠(\)
嗨,我正在尝试用Nifi动态创建一个属性值,它看起来像这样Windows 10 Nifi-在流文件属性中使用反斜杠(\),windows-10,apache-nifi,Windows 10,Apache Nifi,嗨,我正在尝试用Nifi动态创建一个属性值,它看起来像这样 $(absolute.path:substringAfterLast('\'):trim) 我无法摆脱那个反斜杠,有什么解决办法吗?我们可以用不同的方法来实现 Method1: 不要使用substringAfterLast函数,而是使用replaceAll函数获取后面的值 \(最后一个反斜杠) 使用更新属性处理器 将新属性添加为 val ${absolute.path:replaceAll('(.*)(?:\\\\\\\\(.*))
$(absolute.path:substringAfterLast('\'):trim)
我无法摆脱那个反斜杠,有什么解决办法吗?我们可以用不同的方法来实现
Method1:
不要使用substringAfterLast
函数,而是使用replaceAll
函数获取后面的值
\(最后一个反斜杠)
使用更新属性处理器
- 将新属性添加为
val
${absolute.path:replaceAll('(.*)(?:\\\\\\\\(.*))+$,'$2'):trim()}
regex
将提取最后一个反斜杠后的值,并用提取的值替换绝对.path
属性值
(或)
Method2:
使用substringAfterLast
+修剪
功能
${absolute.path:substringAfterLast("\\"):trim()}
这应该是:
${absolute.path:substringAfterLast('\\'):trim()}
。
您的问题是,您使用了()
而不是{}
,您没有在trim
函数之后添加()
,并且没有跳过反斜杠
此方法有效。要添加到:
您还可以使用流文件的path
属性来检索其父目录。如果我有
C:\foo\bar\myfile.txt
然后${path}
将为您提供bar\
考虑到
{absolute.path}
如何给你C:\something\this\
我试过了,但是它在第二个反斜杠后逃逸了单引号,这是一个错误吗?@Greg,我编辑了答案,请用这种方法试试。。!!