GNU Date lets you convert date strings like so:
$ date +"%d %m %Y" -d "yesterday"
04 01 2012
Is it possible to pipe a date string to it for conversion? I've tried the obvious -d -
like so:
$ echo "yesterday" | date +"%d %m %Y" -d -
but it prints today's date instead of yesterdays.
Is it possible to pipe values to it or doesn't it support that?
Thanks.
Yes.
echo "yesterday" | xargs date +"%d %m %Y" -d
date -f tells it to do the same thing as -d except for every line in a file... you can set the filename to "-" to make it read from standard input.
echo "yesterday" | date +"%d %m %Y" -f -
You can use `command`
or $(command)
substitution:
date +"%d %m %Y" -d $(echo "yesterday")
Just to throw it in, in bash:
date +"%d %m %Y" -f <(echo yesterday)