12-18-2014
The simplest, accurate way is to use the modify time stamp and the 'find' comand. Some versions of 'find' allow direct references ( -newerXY datetime1 \! -newerXY datetime2, others need marker files ( -newer file1 \! -newer file2 ) that you can make with 'touch'. The logic should be >= MM/01/YYYY 00:00:00 but < MM+1/01/YYYY 00:00:00. Obviously, it needs to be at least the next month to get a complete list.
Later GNU date commands can help you generate the date strings, or you may need to write a little year-month date arithmetic in shell $(( ... )), i.e., 201501 - 1 = 201500, needs correction from 2015 to 2014 and 00 to 12.
Working off the first second of the month frees you from month length and leap year issues.
There is a little booble when DST time shifts in and out, as the month will be a hour short or long. You might want to export a $TZ that does not do DST (GMT?), so you do not have some files never or twice.
10 More Discussions You Might Find Interesting
1. 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
2. Shell Programming and Scripting
I am trying to delete 2 month old file with date extension yyyymmdd, How can i get a 2 month old month and year? (16 Replies)
Discussion started by: shehzad_m
16 Replies
3. 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
4. Shell Programming and Scripting
Hi,
I need to create a script which should delete all the log files which are 1 month old or older than that.
For ex:
Today's date -- > 09/30/2010
Directory --> /user/work/log/
Files-->
log.07182010 created on 07/18/2010
log.08182010 created on 08/18/2010
log.09182010 ... (4 Replies)
Discussion started by: ustechie
4 Replies
5. Shell Programming and Scripting
Hi ALL,
I am working on a folder where there are lot of files for the past one year. I need to compress a particular month files alone. suppose i need to compress the feb month files alone, what is the script we can use.
Thanks in advance (2 Replies)
Discussion started by: acronis.84
2 Replies
6. Shell Programming and Scripting
Hello All,
I am trying to come up with a shell script to count a specific word in a logfile on each day of this month, last month and the month before. I need to produce this report and email it to customer.
Any ideas would be appreciated! (5 Replies)
Discussion started by: pnara2
5 Replies
7. HP-UX
Hi All
I am trying to remove files from february, only using the following commands:
find . -mtime 70 -exec rm {} \;, but I dont seem to get them deleted.
But I am confused, now, because I have been told to use -atime, like
find . -atime 75 -exec rm {} \;Please can you help!
FR (8 Replies)
Discussion started by: fretagi
8 Replies
8. UNIX for Advanced & Expert Users
Hi All,
I need to find all files other than first two files dates & last file date for month and month/year wise list.
lets say there are following files in directory
Mar 19 2012 c.txt
Mar 19 2012 cc.txt
Mar 21 2012 d.txt
Mar 22 2012 f.txt
Mar 24 2012 h.txt
Mar 25 2012 w.txt
Feb 12... (16 Replies)
Discussion started by: Makarand Dodmis
16 Replies
9. Shell Programming and Scripting
Hello,
i`m looking for some way to add to some date an partial number of months, for example to 2015y 02m 27d + 2,54m
i need to write this script in php or bash or sh or mysql or perl in normal time o unix time
i`m asking or there are any simple way to add partial number of month to some... (14 Replies)
Discussion started by: bacarrdy
14 Replies
10. Shell Programming and Scripting
Hi,
I need all file names in a folder which has date >= 10th of last month,
Example
: files in folder
AUTO_F1_20140610.TXT
BUTO_F1_20140616.TXT
CUTO_F1_20140603.TXT
FA_AUTO_06012014.TXT
LA_AUTO_06112014.TXT
MA_AUTO_06212014.TXT
ZA_AUTO_06232014.TXT
Output:
AUTO_F1_20140610.TXT... (9 Replies)
Discussion started by: nani1984
9 Replies
LEARN ABOUT OSX
http::date
HTTP::Date(3) User Contributed Perl Documentation HTTP::Date(3)
NAME
HTTP::Date - date conversion routines
SYNOPSIS
use HTTP::Date;
$string = time2str($time); # Format as GMT ASCII time
$time = str2time($string); # convert ASCII date to machine time
DESCRIPTION
This module provides functions that deal the date formats used by the HTTP protocol (and then some more). Only the first two functions,
time2str() and str2time(), are exported by default.
time2str( [$time] )
The time2str() function converts a machine time (seconds since epoch) to a string. If the function is called without an argument or
with an undefined argument, it will use the current time.
The string returned is in the format preferred for the HTTP protocol. This is a fixed length subset of the format defined by RFC 1123,
represented in Universal Time (GMT). An example of a time stamp in this format is:
Sun, 06 Nov 1994 08:49:37 GMT
str2time( $str [, $zone] )
The str2time() function converts a string to machine time. It returns "undef" if the format of $str is unrecognized, otherwise
whatever the "Time::Local" functions can make out of the parsed time. Dates before the system's epoch may not work on all operating
systems. The time formats recognized are the same as for parse_date().
The function also takes an optional second argument that specifies the default time zone to use when converting the date. This
parameter is ignored if the zone is found in the date string itself. If this parameter is missing, and the date string format does not
contain any zone specification, then the local time zone is assumed.
If the zone is not ""GMT"" or numerical (like ""-0800"" or "+0100"), then the "Time::Zone" module must be installed in order to get the
date recognized.
parse_date( $str )
This function will try to parse a date string, and then return it as a list of numerical values followed by a (possible undefined) time
zone specifier; ($year, $month, $day, $hour, $min, $sec, $tz). The $year will be the full 4-digit year, and $month numbers start with
1 (for January).
In scalar context the numbers are interpolated in a string of the "YYYY-MM-DD hh:mm:ss TZ"-format and returned.
If the date is unrecognized, then the empty list is returned ("undef" in scalar context).
The function is able to parse the following formats:
"Wed, 09 Feb 1994 22:23:32 GMT" -- HTTP format
"Thu Feb 3 17:03:55 GMT 1994" -- ctime(3) format
"Thu Feb 3 00:00:00 1994", -- ANSI C asctime() format
"Tuesday, 08-Feb-94 14:15:29 GMT" -- old rfc850 HTTP format
"Tuesday, 08-Feb-1994 14:15:29 GMT" -- broken rfc850 HTTP format
"03/Feb/1994:17:03:55 -0700" -- common logfile format
"09 Feb 1994 22:23:32 GMT" -- HTTP format (no weekday)
"08-Feb-94 14:15:29 GMT" -- rfc850 format (no weekday)
"08-Feb-1994 14:15:29 GMT" -- broken rfc850 format (no weekday)
"1994-02-03 14:15:29 -0100" -- ISO 8601 format
"1994-02-03 14:15:29" -- zone is optional
"1994-02-03" -- only date
"1994-02-03T14:15:29" -- Use T as separator
"19940203T141529Z" -- ISO 8601 compact format
"19940203" -- only date
"08-Feb-94" -- old rfc850 HTTP format (no weekday, no time)
"08-Feb-1994" -- broken rfc850 HTTP format (no weekday, no time)
"09 Feb 1994" -- proposed new HTTP format (no weekday, no time)
"03/Feb/1994" -- common logfile format (no time, no offset)
"Feb 3 1994" -- Unix 'ls -l' format
"Feb 3 17:03" -- Unix 'ls -l' format
"11-15-96 03:52PM" -- Windows 'dir' format
The parser ignores leading and trailing whitespace. It also allow the seconds to be missing and the month to be numerical in most
formats.
If the year is missing, then we assume that the date is the first matching date before current month. If the year is given with only 2
digits, then parse_date() will select the century that makes the year closest to the current date.
time2iso( [$time] )
Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ss"-formatted string representing time in the local time zone.
time2isoz( [$time] )
Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ssZ"-formatted string representing Universal Time.
SEE ALSO
"time" in perlfunc, Time::Zone
COPYRIGHT
Copyright 1995-1999, Gisle Aas
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.16.2 2012-03-30 HTTP::Date(3)