Find files not matching multiple patterns and then delete anything older than 10 days


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find files not matching multiple patterns and then delete anything older than 10 days
# 1  
Old 05-31-2016
Find files not matching multiple patterns and then delete anything older than 10 days

Hi,
I have multiple files in my log folder. e.g:

Code:
a_m1.log
b_1.log
c_1.log
d_1.log
b_2.log
c_2.log
d_2.log
e_m1.log
a_m2.log
e_m2.log

I need to keep latest 10 instances of each file.
I can write multiple find commands but looking if it is possible in one line.
m file are monthly and other files are daily.

Thanks
# 2  
Old 05-31-2016
Your requirements are not at all clear.
  1. What constitutes a file?
  2. How are instances of a file determined?
  3. How are the latest instances of a file determined? (By name? By timestamp? Something else?)
  4. Are you trying to keep 10 monthly instances and 10 daily instances of a file? Or 10 instances of daily and monthly files? Or, maybe, 9 daily instances and 1 monthly instance???
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 06-01-2016
Hi,
1)Everything ending with *.log is a file
2) a_m?.log is an instance of "a" monthly file, similarly e_m?.log is instance of "e" monthly file b_?.log is instance of "b" daily file and so on..
3) Latest instance is determined by timestamp of file
4) Im keeping 10 latest of every type of file. 10 latest instances based on timestamp of a_m?.log, b_?.log,c_?.log and so on
# 4  
Old 06-01-2016
...not what you asked for, but maybe enough:

Code:
rm *_1[1-9].log *_m1[1-9].log *_[2-9][0-9].log *_m[2-9][0-9].log

...delete *_11.log - *_99.log and *_m11.log - *_m99.log...
# 5  
Old 06-01-2016
I'm afraid the echo to your request is and will stay sparse, unless you supply way more detail. Inferring from what we've got now, I'd say that a_m?.log can be expanded to a_m0.log to a_m9.log, and that's it. There you've got your ten files, regardless of their age. Of course there are many ways to interpret what you've given, but (at least for me) that's not our task.

How about posting a serious specification without leeway for interpretation, showing a directory listing with at least a representative number of files, and e.g. one or two of your "multiple find commands"?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find command to search and delete files older than 1 days at a desired location

Hello All, Can someone please help me out in creating the find command to search and delete files older than 1 days at a desired location. Thanks in advance for your help. (3 Replies)
Discussion started by: Pandee
3 Replies

2. Shell Programming and Scripting

Script to delete files older than x days and also taking an input for multiple paths

Hi , I am a newbie!!! I want to develop a script for deleting files older than x days from multiple paths. Now I could reach upto this piece of code which deletes files older than x days from a particular path. How do I enhance it to have an input from a .txt file or a .dat file? For eg:... (12 Replies)
Discussion started by: jhilmil
12 Replies

3. Shell Programming and Scripting

Delete files older than X days.

Hi All, I am using below code to delete files older than 2 days. In case if there are no files, I should log an error saying no files to delete. Please let me know, How I can achive this. find /path/*.xml -mtime +2 Thanks and Regards Nagaraja. (3 Replies)
Discussion started by: Nagaraja Akkiva
3 Replies

4. Solaris

Delete files older than 30 days

Hi all, I want to delete log files with extension .log which are older than 30 days. How to delete those files? Operating system -- Sun solaris 10 Your input is highly appreciated. Thanks in advance. Regards, Williams (2 Replies)
Discussion started by: William1482
2 Replies

5. Red Hat

Find files older than 30 days in directories and delete them

Hi, I have dummies questions: My script here can find the files in any directories older than 30 days then it will delete the files but not the directories. I would like to also be able to delete the directories that hold old files more than 30 days not just the files itself. find . -type f... (2 Replies)
Discussion started by: lamoul
2 Replies

6. Shell Programming and Scripting

delete files more than 15 days older

i have to delete files which are older than 15 days or more except the ones in the directory Current and also *.sh files i have found the command for files 15 days or more older find . -type f -mtime +15 -exec ls -ltr {} \; but how to implement the logic to avoid directory Current and also... (3 Replies)
Discussion started by: ali560045
3 Replies

7. UNIX for Dummies Questions & Answers

Delete files older than 30 days

This is driving me crazy. How can I delete files in a specifc directory that are over 30 days old? Thanks in advance. (3 Replies)
Discussion started by: tlphillips
3 Replies

8. UNIX for Dummies Questions & Answers

How can I delete files older than 7 days?

I will like to write a script that delete all files that are older than 7 days in a directory and it's subdirectories. Can any one help me out witht the magic command or script? Thanks in advance, Odogboly98:confused: (3 Replies)
Discussion started by: odogbolu98
3 Replies

9. UNIX for Dummies Questions & Answers

delete files older than 7 days

can anyone tell me how I would write a script in ksh on AIX that will delete files in a directory older than 7 days? (1 Reply)
Discussion started by: lesstjm
1 Replies
Login or Register to Ask a Question