Support Questions

Find answers, ask questions, and share your expertise

Nifi Expression language: append or prepend the attribute with string "$$$"

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 "$$$"

2 ACCEPTED SOLUTIONS

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$$$

View solution in original post

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
New Contributor

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
New Contributor

That's perfect !