代码之家  ›  专栏  ›  技术社区  ›  trougc

如何在Nifi中从流文件数据中提取子字符串?

  •  0
  • trougc  · 技术社区  · 4 年前

    我有一个文件,其中包含txt格式的数据,文件中的每一行都是1条记录。 我使用splittext处理器将流文件拆分为1条记录/文件。

    我想从记录中提取一个子字符串。我需要从开始到第n个索引获取一个子字符串。

    e.g.
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678910'
    
    result flowfile for first 10 chars= abcdefghij
    
    

    flow

    ExtractText -除了我尝试添加了一些在线论坛中提到的属性(att1)外,我在这里使用了默认设置。这无济于事。

    请帮忙,

    0 回复  |  直到 4 年前
        1
  •  1
  •   Sdairs    4 年前

    您正在使用表达式langauge在ExtractText中获取子字符串,这是不正确的。

    ExtractText的动态特性基于RegEx模式填充属性。

    所以你可以使用这个模式 (.*) 将整个文本提取到名为的属性中 att1 。然后,您可以使用UpdateAttribute处理器使用您正在使用的相同表达式语言语句更新该属性 ${att1:substring(0,60)} -但是使用您创建的新属性的名称。

    请参阅ExtractText的文档,并查看“动态特性”部分 https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.12.1/org.apache.nifi.processors.standard.ExtractText/index.html