Sponsored Content
Top Forums Shell Programming and Scripting Need last month files after 10th of every month Post 302909733 by Don Cragun on Friday 18th of July 2014 04:56:26 PM
Old 07-18-2014
There seems to be a lot of complicated processing going on for something that seems pretty simple. I'm also not sure that I understand which files are to be moved. If you run your script on the last day of July, is it supposed to move files dated June 10-30, or files dated July 10-31?

I think you said you want to move June files if you run it in July, so try something like the following:
Code:
#!/bin/ksh
cd /path/to/source/directory

# Get current month and year:
read m y <<-EOF
	$(date +'%m %Y')
EOF
# Calculate previous monht:
if [ $m = 01 ]
then	m=12
	y=$((y - 1))
else	m=$(printf '%02d' $((${m#0} - 1)))
fi

# Move files with names of the form *MMDDYYYY.TXT and *YYYYMMDD.TXT where MM
# and YYYY match the previous month and DD matches a day >= 10 to a new
# directory.
echo mv *$m[1-3][0-9]$y.TXT *$y$m[1-3][0-9].TXT /path/to/destination/directory

If you want it to remove July files when you run it in July, remove the code in red and change previous in the comment to current.

This was tested with ksh but will also work with bash or any other shell that supports POSIX shell parameter expansions, command substitution, and arithmetic expansions. If the echo shows that the right list of files are being passed to mv, remove the echo on the last line of the script to actually move the files. When running this script any time in July 2014 with the list of files you provided in the 1st message in this thread, the above script produces the output:
Code:
mv LA_AUTO_06112014.TXT MA_AUTO_06212014.TXT ZA_AUTO_06232014.TXT AUTO_F1_20140610.TXT BUTO_F1_20140616.TXT /path/to/destination/directory

If there are too many files to move, the mv could fail due to ARG_MAX limits. If this is a problem in your situation, there are several ways to work around it.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find all files by month

Hi, I am trying to do achieving of files by months. find /test -name \*.* -mtime +30 will give me the result of all modified files after 30 days. But lets say i want to list all files that is modified in last months... what is the command to do it? Thanks! (13 Replies)
Discussion started by: maldini
13 Replies

2. Shell Programming and Scripting

How to get previous month files

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. HP-UX

deleting files for a particular month

Hi, I want to delete files of a particular month in a particular directory. Please tell me a script for this so that it will search a particular kind of file in that directory and delete them.I am using HP-UX. (1 Reply)
Discussion started by: adityam
1 Replies

4. UNIX for Dummies Questions & Answers

print previous month (current month minus 1) with Solaris date and ksh

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

5. Shell Programming and Scripting

How to delete1 month old files?

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

6. Shell Programming and Scripting

Script to counting a specific word in a logfile on each day of this month, last month etc

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

Removing files from a particular month

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. Shell Programming and Scripting

Convert From Month Number to Month Name

Hi, I have a script that accepts an input date from the user in yyyy-mm-dd format. I need to get the mm-dd part and convert it to month name. example: 2011-11-15 I want that to become "Nov 15" I don't have the GNU date, I am using an AIX os. Thanks. (1 Reply)
Discussion started by: erin00
1 Replies

9. Shell Programming and Scripting

How to add decimal month to some month in sql, php, perl, bash, sh?

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. UNIX for Advanced & Expert Users

Get last month files

Hi All, How to get last month files. Ex : 1st Jan i have to get Dec 31 days files and on Feb 1st i have to get Jan 31 days files and on Mar 1st i have to get Feb 28 days files. Below are the example files with date and timestamp. aaa.txt.timestamp aaa.txt.timestamp aaa.txt.timestamp Please... (7 Replies)
Discussion started by: kiranparsha
7 Replies
CAL(1)							    BSD General Commands Manual 						    CAL(1)

NAME
cal -- displays a calendar SYNOPSIS
cal [-smjy13] [[month] year] DESCRIPTION
Cal displays a simple calendar. If arguments are not specified, the current month is displayed. The options are as follows: -1 Display single month output. (This is the default.) -3 Display prev/current/next month output. -s Display Sunday as the first day of the week. (This is the default.) -m Display Monday as the first day of the week. -j Display Julian dates (days one-based, numbered from January 1). -y Display a calendar for the current year. A single parameter specifies the year (1 - 9999) to be displayed; note the year must be fully specified: ``cal 89'' will not display a calen- dar for 1989. Two parameters denote the month (1 - 12) and year. If no parameters are specified, the current month's calendar is displayed. A year starts on Jan 1. The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd of September. By this time, most countries had recognized the ref- ormation (although a few did not recognize it until the early 1900's.) Ten days following that date were eliminated by the reformation, so the calendar for that month is a bit unusual. HISTORY
A cal command appeared in Version 6 AT&T UNIX. OTHER VERSIONS
Several much more elaborate versions of this program exist, with support for colors, holidays, birthdays, reminders and appointments, etc. For example, try the cal from http://home.sprynet.com/~cbagwell/projects.html or GNU gcal. BSD
June 6, 1993 BSD
All times are GMT -4. The time now is 02:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy