Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Support Questions

Find answers, ask questions, and share your expertise
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!

Append or Prepend Dollar Signs ($) in NiFi Using the literal Function

avatar
Rising Star

I have requirement where I need to append and prepend the attribute with "$$$". how ever, Nifi expression language is appending or prepending with "\$"

For example: if attribute named "myattr" value is "This is Test"

when I do ${myattr:prepend('$$$'):append('$$$')}

I am expecting "$$$This is Test$$$"

but the output is "\$This is Test\$"

Is there any way to append or prepend the attribute with "$$$"

1 ACCEPTED SOLUTION

avatar
Master Mentor

@SS_Jin 
Another option is to use the NiFi expression Language (NEL) function "literal()}" in the NEL statement:

${myattr:append(${literal('$$$')}):prepend(${literal('$$$')})}

This removes the need to you are using the correct number of "$" to escape $ in the NEL.

Please help our community grow. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped.

Thank you,
Matt

View solution in original post

6 REPLIES 6

avatar
Master Guru

@Anil Reddy

use 9$ instead of 3$

${myattr:prepend('$$$$$$$$$'):append('$$$$$$$$$')}

in expression language if you use 3$ are results as 1$ so we need to use 9$ if you want 3$ sign to be added to the attribute value.

Input:-
"myattr" value is "This is Test"
expression:-
${myattr:prepend('$$$$$$$$$'):append('$$$$$$$$$')}
Output:-
$$$This is Test$$$

avatar
Rising Star

what might be the reason for the extra character '\' ?

avatar
Rising Star

it seems like replaceText processor is replacing '$$$$$*' in the content to '\$' while replacing the flow file content!

seems like actual issue is I have an attribute namely "myattr"

when myattr is "$$This is test$$", if I replace the flowfile content with myattr, the content in the flowfile is "\$this is test\$"

avatar
Explorer

Thanks, prepend worked for me, I needed to add a comma before a value.

avatar
Master Mentor

@SS_Jin 
Another option is to use the NiFi expression Language (NEL) function "literal()}" in the NEL statement:

${myattr:append(${literal('$$$')}):prepend(${literal('$$$')})}

This removes the need to you are using the correct number of "$" to escape $ in the NEL.

Please help our community grow. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped.

Thank you,
Matt

avatar
Explorer

That's perfect !