I am asking for help now because I have been struggling with a simple sed command to be called inside a Jenkinsfile that needs a little variable interpolation.
Better showing the command instead of a large explanation:
sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed does not agree with this syntax and prints that the command s/ is not finished.
I have read Groovy documentation about String and GString but I still don't understand what I am doing wrong ?
Any clues on this?
EDIT:
I am getting the unixEpoch by calling date +%s in order to get the current timestamp.
I printed the command just to be sure what's executed and I found:
sed -i -e 's/-RELEASE/-1525341883'
/g' myFile
The full error sent by sed is:
sed: -e expression #1, char 22: unterminated 's' command
I found weird that the printed command has an \n in the middle of it...
date +%shas a newline at the end, and when you interpolate it into your generatedsedit is including that newline which explains whysedis complaining. You could do${unixEpoch.trim()}or trim theunixEpochvalue before using it.