Date format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Date format
# 43  
Old 03-22-2010
Try this code : -

Code:
$
$ cat find_sterdate.sh
v_todaysdate=`date +%d`
v_yesterday=$((`date +%e` -1))

v_month=`date +%m`
v_year=`date +%Y`

if [ $v_yesterday -eq "0" ]
then
  v_month=$((v_month-1))
    if [ $v_month -eq "0" ]
    then
       v_month=12
       v_year=$((v_year-1))
    fi
  set `cal $v_month $v_year`
  shift $(($# - 1))
  v_yesterday=$1
fi
echo
echo "Today is ---> " $v_todaysdate-$v_month-$v_year
echo
echo "Yesterday is ---> " $v_yesterday-$v_month-$v_year
v_date_format=`/bin/cal $v_month $v_year | grep -v "^$" | sed -n  '1p;$p' | tr "\n" " "  | awk '{print substr($1,1,3)}'`
echo
echo "The complete format in DD-MON-YYYY is --->" $v_yesterday-$v_date_format-$v_year

$
$
$ find_sterdate.sh

Today is --->  22-03-2010

Yesterday is --->  21-03-2010

The complete format in DD-MON-YYYY is ---> 21-Mar-2010
$


Last edited by Franklin52; 03-22-2010 at 06:59 AM.. Reason: Please use code tags, thank you!
kandi.reddy
# 44  
Old 03-22-2010
Is this deleting yesterdays folder?
I need to put it in cron so that this will be an automated process..
# 45  
Old 03-22-2010
Try the below mentioned code : -

I have used ls in a if loop to know what all are the exists with the yesterday's datestamp...First you have to verify the files and directories and then after you can uncomment the rm command...But please do test it from your end.

And also mentioned the directory name in the commented.

bash-3.00$ find_sterdate.sh

Today is ---> 22-03-2010

Yesterday is ---> 21-03-2010

The complete format in DD-MON-YYYY is ---> 21-Mar-2010

The Script will delete all the files and directories which was created on 21-03-2010


Number of files found to delete ---> 0

Code:
bash-3.00$
bash-3.00$
bash-3.00$ cat find_sterdate.sh
v_todaysdate=`date +%d`
v_yesterday=$((`date +%e` -1))

v_month=`date +%m`
v_year=`date +%Y`

file_cnt1=0

#mention the directory name here like below
#cd /root/myhome/kandir
#tgt_dir=`pwd`

if [ $v_yesterday -eq "0" ]
then
  v_month=$((v_month-1))
    if [ $v_month -eq "0" ]
    then
       v_month=12
       v_year=$((v_year-1))
    fi
  set `cal $v_month $v_year`
  shift $(($# - 1))
  v_yesterday=$1
fi
echo
echo "Today is ---> " $v_todaysdate-$v_month-$v_year
echo
echo "Yesterday is ---> " $v_yesterday-$v_month-$v_year
v_date_format=`/bin/cal $v_month $v_year | grep -v "^$" | sed -n  '1p;$p' | tr "\n" " "  | awk '{print substr($1,1,3)}'`
echo
echo "The complete format in DD-MON-YYYY is --->" $v_yesterday-$v_date_format-$v_year
echo
echo "The Script will delete all the files and directories which was created on $v_yesterday-$v_month-$v_year"
echo
for file_name1 in `ls -ltr | awk '{print $6,$7,$9}' | grep "$v_date_format $v_yesterday"  |awk '{print $3}'`
do
 if [ -f $file_name1 ]
 then
  file_cnt1=`expr $file_cnt1 + 1`
  ls -ltr $file_name1
  #rm -r $tgt_dir/$file_name1
 fi
done
echo
echo "Number of files found to delete --->" $file_cnt1
echo
bash-3.00$
bash-3.00$
bash-3.00$ find_sterdate.sh

Today is ---> 22-03-2010

Yesterday is ---> 21-03-2010

The complete format in DD-MON-YYYY is ---> 21-Mar-2010

The Script will delete all the files and directories which was created on 21-03-2010


Number of files found to delete ---> 0

bash-3.00$

---------- Post updated at 04:59 AM ---------- Previous update was at 04:52 AM ----------

Try to change the value of the "v_todaysdate" (v_todaysdate = 23) and also verify the code...If the script is giving the results as per the expectations then you can schedule through crontab...First you verify the ode carefully.

I mean to say that if today is 1st of Apr then the script should verify those fiels which were created on 31st Mar..month will be change over here!!!

Last edited by Franklin52; 03-22-2010 at 07:02 AM.. Reason: Please indent your code and use code tags, thank you
kandi.reddy
# 46  
Old 03-22-2010
Quote:
Originally Posted by kandi.reddy
Code:
bash-3.00$ cat find_sterdate.sh
v_todaysdate=`date +%d`
v_yesterday=$((`date +%e` -1))

v_month=`date +%m`
v_year=`date +%Y`


Four calls to date????

Besides being inefficient, that will fail if a date/time boundary is passed between one call and the next.

Code:
eval "$( date +"
  v_todaysdate=%d
  v_month=%m
  v_year=%Y
)"

v_yesterday=$(( $v_todaysdate - 1 ))

# 47  
Old 03-22-2010
my format is 2010-03-21
YYYY-mon-dd

---------- Post updated at 03:02 PM ---------- Previous update was at 02:57 PM ----------

ah....
initially it was just 3- 4 lines....
Now its so much..iam new to Unix shell scripting..
Trying to analyse what is written.
Can anybody finally give the code completely...so that i can understand and then use it
# 48  
Old 03-22-2010
Quote:
Originally Posted by j_panky
Can anybody finally give the code completely...so that i can understand and then use it

Did you run the script exactly as I posted it? Here it is again.
Code:
dir=`date +%Y-%m-%d --date='1 day ago'`
find /home/uat -depth -type d -name "$dir" -exec rm -vrf {} \;  ## I just added the -v option

What is the result?

Last edited by cfajohnson; 03-22-2010 at 06:46 AM.. Reason: Fixed order of -depth and -type
# 49  
Old 03-22-2010
here is the result -
find: warning: you have specified the -depth option after a non-option argument -type, but options are not positional (-depth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

find: /home/xelusuat/os+n: Permission denied
removed '/home/uat/at_08-34.dmp'
removed '/home/uat/at_08-34.exp'
removed directory: /home/uat/2010-03-21'
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Date: invalid date trying to set Linux date in specific format

i try to set linux date & time in specific format but it keep giving me error Example : date "+%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" or date +"%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" keep giving me this error : date: invalid date ‘19-01-2017 00:05:01' Please use CODE tags... (7 Replies)
Discussion started by: umen
7 Replies

2. UNIX for Dummies Questions & Answers

Rename all Files in a UNIX Directory from one date format to another date format

Hi Unix Gurus, I would like to rename several files in a Unix Directory . The filenames can have more than 1 underscore ( _ ) and the last underscore is always followed by a date in the format mmddyyyy. The Extension of the files can be .txt or .pdf or .xls etc and is case insensitive ie... (1 Reply)
Discussion started by: pchegoor
1 Replies

3. Shell Programming and Scripting

finding date numeral from file and check the validity of date format

hi there I have file names in different format as below triss_20111117_fxcb.csv triss_fxcb_20111117.csv xpnl_hypo_reu_miplvdone_11172011.csv xpnl_hypo_reu_miplvdone_11-17-2011.csv xpnl_hypo_reu_miplvdone_20111117.csv xpnl_hypo_reu_miplvdone_20111117xfb.csv... (10 Replies)
Discussion started by: manas_ranjan
10 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripts - shows today’s date and time in a better format than ‘date’ (Uses positional paramete

Hello, I am trying to show today's date and time in a better format than ‘date' (Using positional parameters). I found a command mktime and am wondering if this is the best command to use or will this also show me the time elapse since 1/30/70? Any help would be greatly appreciated, Thanks... (3 Replies)
Discussion started by: citizencro
3 Replies

5. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

6. Shell Programming and Scripting

How to increment a user defined date value in the DATE format itself using shell script?

I need to increment a date value through shell script. Input value consist of start date and end date in DATE format of unix. For eg. I need increment a date value of 1/1/09 to 31/12/09 i.e for a whole yr. The output must look like 1/1/09 2/2/09 . . . 31/1/09 . . 1/2/09 . 28/2/09... (1 Reply)
Discussion started by: sunil087
1 Replies

7. UNIX for Dummies Questions & Answers

Changing from Excel date format to MySQL date format

I have a list of dates in the following format: mm/dd/yyyy and want to change these to the MySQL standard format: yyyy-mm-dd. The dates in the original file may or may not be zero padded, so April is sometimes "04" and other times simply "4". This is what I use to change the format: sed -i '' -e... (2 Replies)
Discussion started by: figaro
2 Replies

8. Shell Programming and Scripting

convert date format to mysql date format in log file

I have a comma delimited log file which has the date as MM/DD/YY in the 2nd column, and HH:MM:SS in the 3rd column. I need to change the date format to YYYY-MM-DD and merge it with the the time HH:MM:SS. How will I got about this? Sample input 02/27/09,23:52:31 02/27/09,23:52:52... (3 Replies)
Discussion started by: hazno
3 Replies

9. UNIX for Advanced & Expert Users

date issue-find prevoius date in a patricular format

Hi , I have written a shell script that takes the current date on the server and stores it in a file. echo get /usr/home/data-`date '+%Y%d'`.xml> /usr/local/sandeep/GetFILE.ini I call this GetFILE.ini file from an sftp program to fetch a file from /usr/home/ as location. The file is in... (3 Replies)
Discussion started by: bsandeep_80
3 Replies

10. Shell Programming and Scripting

convert mmddyy date format to ccyyddd format??

hi, for reading a cobol indexed file i need to convert "mmddyy" date format to "ccyyddd" format. i checked the datecalc and other scripts but couldnt modify them to cater to my need:(... The datecalc gives an output which i believe is the total days till that date, but i want to convert it... (2 Replies)
Discussion started by: Bhups
2 Replies
Login or Register to Ask a Question