0

I have a CSV file where I would like to modify the following string:

${GDATEF(-4D,ddMMyyyy)}

To do so I am using the following script:

#!/usr/bin/env bash

echo "replacing >>D,ddMMyyyy)<<"
sed -i "s/D,ddMMyyyy)\}/ days\\\\\"\ \+\\\\\"%d\/%m\/%Y\\\\\"/g" $1


echo "replacing >>\${GDATEF(<< AND executing date + N days"
sed -i "s/\${GDATEF(/date -d \\\\\"`date` + /g" $1

echo "the final touch ;)"
sed -i "s/date -d /date -d/g" $1

This results in:

date -d\"Fri Oct 15 10:38:20 UTC 2021 + -4 days\" +\"%d/%m/%Y\"

Now I can take that result, remove some unnecessary characters and execute it manually:

sh-4.2# date -d "Fri Oct 15 09:20:53 UTC 2021 + -4 days" +"%d/%m/%Y"
11/10/2021

However, I would like to be able to perform that last step automatically, any ideas?

1 Answer 1

1

Take the final result and use sed to remove \:

echo "date -d\"Fri Oct 15 10:38:20 UTC 2021 + -4 days\" +\"%d/%m/%Y\"" | sed 's+\\++'

This will output:

date -d"Fri Oct 15 10:38:20 UTC 2021 + -4 days" +"%d/%m/%Y"

If you execute that you will get:

11/10/2021

TL;DR

Here is the all in one solution:

eval $(echo "date -d\"Fri Oct 15 10:38:20 UTC 2021 + -4 days\" +\"%d/%m/%Y\"" | sed 's+\\++')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.