Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

getDelimitedField when delimiter is a \

Solved Go to solution

getDelimitedField when delimiter is a \

New Contributor

Hello,

I have an attribute log_source that holds a path like D:\dir1\dir2\dir3

I need to get only dir2 but I'm unable to escape the slash with ${log_source:getDelimitedField(3,'\')}

I've tried several things unsuccessfully.

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: getDelimitedField when delimiter is a \

Master Guru

@Julian Iglesias

-

You can accomplish above using a function chain in your NiFi Expression Language (EL) statement.

Rather then using the getDelimitedField() EL function:

${log_source:getDelimitedField(3,'\')}

-
You can successfully do this using the substringAfter() function twice to strip away what is before "dir2" and the substringBefore() function to strip away everything after "dir2":

${log_source:substringAfter('\\'):substringAfter('\\'):substringBefore('\\')}

-

Thank you,

Matt

-

If you found this answer addressed your question, please take a moment to login in and click the "ACCEPT" link.


2 REPLIES 2
Highlighted

Re: getDelimitedField when delimiter is a \

Master Guru

@Julian Iglesias

-

You can accomplish above using a function chain in your NiFi Expression Language (EL) statement.

Rather then using the getDelimitedField() EL function:

${log_source:getDelimitedField(3,'\')}

-
You can successfully do this using the substringAfter() function twice to strip away what is before "dir2" and the substringBefore() function to strip away everything after "dir2":

${log_source:substringAfter('\\'):substringAfter('\\'):substringBefore('\\')}

-

Thank you,

Matt

-

If you found this answer addressed your question, please take a moment to login in and click the "ACCEPT" link.


Re: getDelimitedField when delimiter is a \

New Contributor

@Matt Clarke thank you, it works.

Just in case somebody needs it I managed to make it work using getDelimitedField

log_source:getDelimitedField(3, '\\', '"', '~')}