Peter,

Another option that may be a lot easier for you is to use the RouteText 
processor.

If you set Matching Strategy to "Satisfies Expression", you can use the 
Expression Language
to inspect FlowFile attributes, etc. But the RouteText processor also exposes 
two additional
variables: _line_ and _lineNo_ that you can use to route individual lines. So 
you set the Routing
Strategy to "Route to 'matched' if line matches all conditions" and add a
property with a value of: ${lineNo:gt(5)}

That would route the first 5 lines to to the 'unmatched' relationship (lineNo 
is 1 for the first line),
and all the other lines would be routed to the 'matched' relationship. Then you 
can just auto-terminate
'unmatched'.

This should help to avoid having to write any custom scripts.

Thanks
-Mark


> On Sep 28, 2016, at 7:03 AM, Pierre Villard <[email protected]> 
> wrote:
> 
> Hi Peter,
> 
> I would recommend you the following blog by Matt:
> http://funnifi.blogspot.fr/2016/02/executescript-processor-replacing-flow.html
>  
> <http://funnifi.blogspot.fr/2016/02/executescript-processor-replacing-flow.html>
> 
> Pierre
> 
> 2016-09-28 13:01 GMT+02:00 Andrew Grande <[email protected] 
> <mailto:[email protected]>>:
> Groovy script or a simple sed command invoked via ExecuteStreamingCommand 
> should do the job.
> 
> Andrew
> 
> 
> On Wed, Sep 28, 2016, 12:18 AM Peter Wicks (pwicks) <[email protected] 
> <mailto:[email protected]>> wrote:
> I have a CSV file where the first few lines are a summary of the report 
> parameters that were used to generate it. I want to strip these off in NiFi.
> 
> I’ve considered using a RegEx to match the {N} top lines, but am wondering of 
> a Groovy script might be a better option?  I want to keep the file intact, so 
> splitting it by line ending and routing all of the lines through a 
> RouteByAttribute seems excessive.
> 
>  
> 
> I’ve never built a Groovy script, any examples on how I might go about this?
> 
>  
> 
> Thanks,
> 
>   Peter
> 
> 

Reply via email to