如何使用NiFi ReplaceText处理器移除FlowFile内容的最后一行
如何使用NiFi ReplaceText处理器移除FlowFile内容的最后一行
没问题,我来帮你搞定这个需求!用NiFi的ReplaceText处理器就能轻松移除那行多余的内容,具体配置步骤和思路如下:
首先把ReplaceText处理器拖到你的流程画布上,和输出SQL结果的上游处理器连起来。接下来重点配置这几个关键参数:
- Evaluation Mode:一定要选
Entire Text,因为我们要对整个FlowFile的内容做匹配替换,而不是逐行处理 - Search Value:填入正则表达式
(.*)\n.*$
这个正则的逻辑很简单:(.*)是个捕获组,会贪婪匹配到最后一个换行符之前的所有内容(也就是你需要保留的正常数据);\n.*$则匹配最后一个换行符加上后面的多余行内容,直到文件结尾 - Replacement Value:填入
$1
这里的$1对应前面捕获组里的正常内容,相当于把整个内容替换成我们需要保留的部分,直接丢掉最后一行 - Replacement Strategy:选
Replace First就够了,因为我们的正则已经用$锚定了内容结尾,只会匹配一次整个文本
配置完之后,建议先用NiFi的Preview功能测试一下,看看处理后的结果是不是你想要的:
111 AAA
222 BBB
333 CCC
444 DDD
如果你的FlowFile存在只有一行多余内容的极端情况(比如SQL没返回正常数据,只有那行多余的),可以把正则改成 (.*?)(\n.*$|^.*$),替换值还是$1,这样就能覆盖单行的情况啦。
备注:内容来源于stack exchange,提问作者Amarnatha Reddy
相关产品推荐
相关产品推荐

