Yesterday in UNIX


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Yesterday in UNIX
# 8  
Old 02-13-2015
Corona688: For now perl is the only solution for the setenv i'm searching an other one.

drl: Thank you, that's what i need and in this format 20150212 . I'll try
Code:
setenv TZ CST+24 ; date +%Y%m%d

in my .login Monday because my machine is at work and i'll tell you if it works for me or not.

DGPickett: It's a Solaris and not a GNU so
Code:
date -d

doesn't work.

Last edited by chaima.trimeche; 02-13-2015 at 06:22 PM..
# 9  
Old 02-13-2015
Well, 'date' is just a program file, you can get a Gnu date and call it gdate or by path.

I wrote tm2tm as a more task oriented tool than date, not cluttered with clock setting. It is easy to compile and use. In this case, time input is clock, delta is back one day, format is YYYY-MM-DD:
Code:
$ tm2tm -c -1d '%Y-%m-%d'
2015-02-12
$


Last edited by DGPickett; 02-13-2015 at 06:34 PM..
This User Gave Thanks to DGPickett For This Post:
# 10  
Old 02-13-2015
DGPickett: I can't change the configuration of the client's files. So i have to try other solutions.
Thanks.
# 11  
Old 02-13-2015
You can put gnu date anywhere and call it when you need yesterday, no configuration or other system level change.
# 12  
Old 02-13-2015
Does /usr/sfw/bin on your solaris box have gdate or date?

And. If you cannot change anything at why are you asking for something that implies some kind of code change?
This works on solaris10 and solaris11 - We use it in lots of scripts.
Code:
#!/bin/ksh
# usage /path/to/then.pl 7 for date seven days ago
#          /path/to/then.pl 1  for yesterday
ago()
{
   perl -e ' my $delta = $ARGV[0];
             $delta*=86400;
             $delta=time - $delta;
             @t=localtime( $delta );
             printf("%02d-%02d-%d", $t[4]+1, $t[3], $t[5]+1900); ' $1
}

echo $(ago $1)

# 13  
Old 02-14-2015
Hi,
with awk (work fine between 1901 and 2099):
Code:
awk -F/ '{($3 == 1) ? ($2 == 1) ? $0=$1-1"/12/31" : ($2 == 3) ? (($1 % 4)==0) ? $0=$1"/2/29" : $0=$1"/2/28" : ($2 == 2 || $2 == 4 || $2 == 6 || $2 == 8 || $2 == 9 || $2 == 11) ? $0=$1"/"$2-1"/31" : $0=$1"/"$2-1"/30" : $0=$1"/"$2"/"$3-1 ; printf("%04d%02d%02d\n",$1,$2,$3)}'

and example:
Code:
for i in "2016/03/01" "2015/01/01" "2015/02/01" "2015/03/01" "2015/04/01" "2015/05/01" "2015/06/01" "2015/07/01" "2015/08/01" "2015/09/01" "2015/10/01" "2015/11/01" "2015/12/01"
do
echo $i | awk -F/ '{($3 == 1) ? ($2 == 1) ? $0=$1-1"/12/31" : ($2 == 3) ? (($1 % 4)==0) ? $0=$1"/2/29" : $0=$1"/2/28" : ($2 == 2 || $2 == 4 || $2 == 6 || $2 == 8 || $2 == 9 || $2 == 11) ? $0=$1"/"$2-1"/31" : $0=$1"/"$2-1"/30" : $0=$1"/"$2"/"$3-1 ; printf("%04d%02d%02d\n",$1,$2,$3)}'
done
20160229
20141231
20150131
20150228
20150331
20150430
20150531
20150630
20150731
20150831
20150930
20151031
20151130

Regards.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

UNIX cluster disk usage report generation for yesterday & today and email

HI Team, I am trying to create a shell script to generate a yesterday and today report to compare and email in daily basis. can you please help me on the same. #!/bin/bash #Author: ******************* #Description: This script will return the following set of system information: ... (2 Replies)
Discussion started by: Mi4304
2 Replies

2. UNIX for Beginners Questions & Answers

Yesterday

hi guys i want to know how can i insert in a variable yesterday for example : today=`date +%Y%m%d` yesterday =??? thanks a lot Please use CODE tags as required by forum rules! (4 Replies)
Discussion started by: Francesco_IT
4 Replies

3. Shell Programming and Scripting

yesterday date

HI All, I am trying so long to find the yesterday's date to run a script but i failed kinldy share the command to find yesterday's date in ksh i tried with date --date='1 day ago' but it displaying error your help will highly apeerciated. Thanks (7 Replies)
Discussion started by: thelakbe
7 Replies

4. Shell Programming and Scripting

yesterday's date

curdate=$(date +"%d-%b-%y") How to get the yesterday's date. (1 Reply)
Discussion started by: sandy1028
1 Replies

5. Shell Programming and Scripting

yesterday's date

I was playing to find a simple way to get yesterday's date, and came up with this (on an AIX 5.2 box): $ date Thu Feb 19 11:21:26 EST 2009 $ echo $TZ EST5EDT $ yesterday=`TZ=$(date +%Z)+24 date` $ echo $yesterday Wed Feb 18 16:21:52 GMT 2009 Why it is converted to GMT instead of... (2 Replies)
Discussion started by: gratus
2 Replies

6. Shell Programming and Scripting

Compare date from db2 table to yesterday's Unix system date

I am currently running the following Korn shell script which works fine: #!/usr/bin/ksh count=`db2 -x "select count(*) from schema.tablename"` echo "count" I would like to add a "where" clause to the 2nd line that would allow me to get a record count of all the records from schema.tablename... (9 Replies)
Discussion started by: sasaliasim
9 Replies

7. UNIX for Dummies Questions & Answers

Hello and I need help like in yesterday

I haven't been using linux very long( and when I say that its only been about 1 week for me) I was told to do the following: Create a Bash script that will copy all the files and subdirectories in one directory to a newly created directory. You may name the receiving directory anything you like.... (4 Replies)
Discussion started by: reecygee
4 Replies

8. Shell Programming and Scripting

Yesterday in i.e. May 09 and 05/09 format

I am not using GNU nor BSD. On AIX, how do you return yesterday in the format of i.e. "May 09" with a space. # `TZ=y380 date +%h""%d` >> May09 # `TZ=y380 date +%h" "%d` >> May I appreciate your help in advance. thx (3 Replies)
Discussion started by: Daniel Gate
3 Replies

9. Shell Programming and Scripting

yesterday

How to get the date before the current date on unix tru64? Today is 2008-02-27. I'll need 2008-02-26. Thx (0 Replies)
Discussion started by: Tlg13team
0 Replies

10. Shell Programming and Scripting

get yesterday's date?

Hello, using date, we can easily get today's date $ date +%y-%m-%d 06-12-08 is it possible for me to get yesterday's date using 'date', if not, is there any quick and easy way to do that? Thanks! (1 Reply)
Discussion started by: fedora
1 Replies
Login or Register to Ask a Question