On Thu, Dec 07, 2006 at 03:41:53PM -0600, Ron Johnson wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 12/07/06 15:12, Almut Behrens wrote: > > On Thu, Dec 07, 2006 at 12:16:54PM -0600, Nate Bargmann wrote: > >> I have a directory of files that are created daily using > >> filename-`date +%Y%m%d`.tar.gz so I have a directory with files whose > >> names advance from filename-20061201.tar.gz to filename-20061202.tar.gz > >> to filename-20061203.tar.gz and so on. Based on the date in the > >> filename, I would like to delete any than are X days older than today's > >> date. So, I'm not interested in the actual created/modified date, just > >> the numeric string in the name. > > > > ... what, no Perl one-liner yet?? :) > > > > So, here it is, the line noise version that should do the job: > > > > $ perl -MTime::Local -e 'unlink grep {/-(\d{4})(\d\d)(\d\d)/; > > timelocal(0,0,0,$3,$2-1,$1)<time-864000} glob "*.tar.gz"' > > > > This would delete all of your .tar.gz files older than 10 days (or > > 864000 secs), in the current directory. > > OP specifically noted: > I'm not interested in the actual created/modified date
yes, I know... It does in fact use the date specification from the filename (extracted by the /-(\d{4})(\d\d)(\d\d)/ regex). -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]