Question

In a unix shell, how to get yesterday's date into a variable?

I've got a shell script which does the following to store the current day's date in a variable 'dt':

date "+%a %d/%m/%Y" | read dt
echo ${dt}

How would i go about getting yesterdays date into a variable?

Basically what i'm trying to achieve is to use grep to pull all of yesterday's lines from a log file, since each line in the log contains the date in "Mon 01/02/2010" format.

Thanks a lot

 45  139551  45
1 Jan 1970

Solution

 77
dt=$(date --date yesterday "+%a %d/%m/%Y")
echo $dt
2010-08-19

Solution

 53

On Linux, you can use

date -d "-1 days" +"%a %d/%m/%Y"
2010-08-19