02-02-2009
How to get the previous month by using `date`
Hello,
I'm new to shell scripting.
We've develop a script which will grep a file on the search criteria, MON (Jan/Feb/Mar/etc). But we should set this sript in cron which will run on every first day of the month. The problem I'm having is, when I run the script, it is displaying the contents of the present month. But I need the contents of the last month.
If the present month is Feb, the output that I should get is of Jan.
I'm using below in the script.
********************************************
set -x
#!/bin/sh
MON=`date +%b` #Feb
grep \/$MON\/ File1.txt > Output1.txt #This file should have the contents of Jan, not of Feb.
********************************************
Can anyone please help me to achieve the expecting output.
Thanks
~Suneel
Last edited by suneelj; 02-02-2009 at 05:39 PM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
This has probably been asked 100 times, but I couldn't find any articles on point. I have a script that runs on the last day of every month at 11:30pm. If cats a number of input tables that were created the previous month (or earlier), combines them into one master file and erases the indivual... (1 Reply)
Discussion started by: beilstwh
1 Replies
2. Shell Programming and Scripting
Hi,
My task to to delete files which are of previous months.
I have files named as follows *CCYYMMDD.xls. on a particular day i have delete previous months files
i.e in Dec i have delete all nov files which look like 200511DD.XLS
in Jan i have to delete all Dec files 200512DD.xls
... (7 Replies)
Discussion started by: savitha
7 Replies
3. Shell Programming and Scripting
Hi, I'm new with Unix, I'm trying to get a last day of previous month with this format: %b %d %Y (example: Feb 25 2008).
Here is what I have so far.
#!/bin/ksh
cur_month=`date +%m`
cur_year=`date +%Y`
prev_month=$(($cur_month-1))
# Check to see if this is January
if
then
... (11 Replies)
Discussion started by: sirrtuan
11 Replies
4. Shell Programming and Scripting
Hello,
I wanted to display the month for previous day date. Like, today date is 18-Nov-2008. So the previous date is 17-Nov-2008. The output should be November.
If the today date is 1-DEC-2008, then output should be NOVEMBER.
If the today date is 1-JAN-2008, then output should be DECEMBER.... (4 Replies)
Discussion started by: govindts
4 Replies
5. Shell Programming and Scripting
Hi All,
I need to run a job every month at the beginning of the month which is scheduled through autosys, lets say on 03/01/2010. I need to pass the last month's i.e February's first_date = 02/01/2010 and last_date = 02/28/2010 as variables to a stored procedure. Can somebody please pass... (2 Replies)
Discussion started by: vigdmab
2 Replies
6. UNIX for Dummies Questions & Answers
Hi folks
month=`date +%m`gives current month
Howto print previous month (current month minus 1) with Solaris date and ksh (7 Replies)
Discussion started by: slashdotweenie
7 Replies
7. UNIX for Dummies Questions & Answers
Hi,
On any given day, I want to capture the month that has gone by - said otherwise, how do I capture last month?
expr date '+%m' - 1
Above expression is giving error.
Please advise
thanks
---------- Post updated at 09:28 AM ---------- Previous update was at 09:11 AM... (1 Reply)
Discussion started by: ab_2010
1 Replies
8. UNIX for Dummies Questions & Answers
Hi All,
I am using the below code to get the year and month from date:
Below gives output like 201212.
dt=`date '+%Y%m'`
how do i get the previous month value(ie: subtract 1 from date)
example output:
dt=201211
Please help. :confused: (3 Replies)
Discussion started by: abhi_123
3 Replies
9. Shell Programming and Scripting
I have requirment to get last date of previous month and the first date of previous 4th month:
Example:
Current date: 20130320 (yyyymmdd)
Last date of previous month: 20130228 (yyyymmdd)
First date of previous 4th month: 20121101 (yyyymmdd)
In my shell --date, -d, -v switches are not... (3 Replies)
Discussion started by: machomaddy
3 Replies
10. Shell Programming and Scripting
I am not able to fetch first date and last date previous month
date -d -1month +%Y-%m-%d
date -d -1month +%Y-%m-%d
I need two format dd-mm-yyy
previous month 01-03-2016
previous month 31-03-2016
and also only date 1 to 31
Aprriciate your replay (4 Replies)
Discussion started by: jagu
4 Replies
CAL(1) BSD General Commands Manual CAL(1)
NAME
cal -- displays a calendar
SYNOPSIS
cal [-3hjry] [-A after] [-B before] [-d day-of-week] [-R reform-spec] [[month] year]
DESCRIPTION
cal displays a simple calendar. If arguments are not specified, the current month is displayed. The options are as follows:
-3 Same as ``-A 1 -B 1''.
-A after
Display after months after the specified month.
-B before
Display before months before the specified month.
-d day-of-week
Specifies the day of the week on which the calendar should start. Valid values are 0 through 6, presenting Sunday through Saturday,
inclusively. The default output starts on Sundays.
-h Highlight the current day, if present in the displayed calendar. If output is to a terminal, then the appropriate terminal sequences
are used, otherwise overstriking is used. If more than one -h is used and output is to a terminal, the current date will be high-
lighted in inverse video instead of bold.
-j Display Julian dates (days one-based, numbered from January 1).
-R reform-spec
Selects an alternate Gregorian reform point from the default of September 3rd, 1752. The reform-spec can be selected by one of the
built-in names (see NOTES for a list) or by a date of the form YYYY/MM/DD. The date and month may be omitted, provided that what is
specified uniquely selects a given built-in reform point. If an exact date is specified, then that date is taken to be the first
missing date of the Gregorian Reform to be applied.
-r Display the month in which the Gregorian Reform adjustment was applied, if no other month or year information is given. If used in
conjunction with -y, then the entire year is displayed.
-y Display a calendar for the current year.
If no parameters are specified, the current month's calendar is displayed. A single parameter specifies the year and optionally the month in
ISO format: ``cal 2007-12'' Two parameters denote the month (1 - 12) and year. Note that the century must be included in the year.
A year starts on Jan 1.
NOTES
In the USA and Great Britain the Gregorian Reformation occurred in 1752. By this time, most countries had recognized the reformation
(although a few did not recognize it until the 1900's.) Eleven days following September 2, 1752 were eliminated by the reformation, so the
calendar for that month is a bit unusual.
In view of the chaotic way the Gregorian calendar was adopted throughout the world in the years between 1582 and 1928 make sure to take into
account the date of the Gregorian Reformation in your region if you are checking a calendar for a very old date.
cal has a decent built-in list of Gregorian Reform dates and the names of the countries where the reform was adopted:
Italy Oct. 5, 1582 Denmark Feb. 19, 1700
Spain Oct. 5, 1582 Great Britain Sep. 3, 1752
Portugal Oct. 5, 1582 Sweden Feb. 18, 1753
Poland Oct. 5, 1582 Finland Feb. 18, 1753
France Dec. 12, 1582 Japan Dec. 20, 1872
Luxembourg Dec. 22, 1582 China Nov. 7, 1911
Netherlands Dec. 22, 1582 Bulgaria Apr. 1, 1916
Bavaria Oct. 6, 1583 U.S.S.R. Feb. 1, 1918
Austria Jan. 7, 1584 Serbia Jan. 19, 1919
Switzerland Jan. 12, 1584 Romania Jan. 19, 1919
Hungary Oct. 22, 1587 Greece Mar. 10, 1924
Germany Feb. 19, 1700 Turkey Dec. 19, 1925
Norway Feb. 19, 1700 Egypt Sep. 18, 1928
The country known as Great Britain can also be referred to as England since that has less letters and no spaces in it. This is meant only as
a measure of expediency, not as a possible slight to anyone involved.
HISTORY
A cal command appeared in Version 6 AT&T UNIX.
BSD
December 21, 2007 BSD