PERL - Selecting specific files based on 'date stamp' values


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting PERL - Selecting specific files based on 'date stamp' values
# 1  
Old 02-25-2010
Error PERL - Selecting specific files based on 'date stamp' values

Hi,

I've list of files in a directory, which have date stamp value in their names.

Code:
ex: 
abc_data_20071102.csv, 
abc_data_20091221.csv, 
abc_data_20100110.csv, 
abc_data_20100222.csv, 
abc_data_20080620.csv,... etc.,

I need to select and process only files, within the given date range.

Code:
ex: files starting from the date 20090101 to 20101231

I've written below scrtipt to select files starting from 'abc_data_' and ending with '.csv'.
This script is selecting all files starting abc_data_ and ending with '.csv'.

Code:
my @files = </test/ganap/abc_*.csv>;
foreach my $inputfilename (@files) {
   open( my $in_fh, "<", $inputfilename ) or die "Can't open $inputfilename : $!";
#.......................... file processing
}
close($in_fh);

Could any of you help me to achieve my selection criteria?Smilie
# 2  
Old 02-25-2010
Code:
my @files = < /test/ganap/abc_20[01][09][0112].csv >;
foreach my $inputfilename (@files) {
   open( my $in_fh, "<", $inputfilename ) or die "Can't open $inputfilename : $!";
#.......................... file processing
}
close($in_fh);

SmilieSmilieSmilie
# 3  
Old 02-25-2010
Thanks for your quick reply ahmad diab. Smilie

But, files selecting start and end dates are commandline parameters to the programme.

Code:
my $startdate  = $ARGV[0];
my $enddate  = $ARGV[1];

my @files = </test/ganap/abc_*.csv>; #current approach, which is wrong.
foreach my $inputfilename (@files) {
   open( my $in_fh, "<", $inputfilename ) or die "Can't open $inputfilename : $!";
#.......................... file processing
}
close($in_fh);

So, I need help to modify my script Smilie
# 4  
Old 02-25-2010
well that's the beauty of ASCII and the ISO date format
you can just do an aplhabetic comparison,
if (abc_data_20090312 gt abc_data_20080312)
# 5  
Old 02-26-2010
Thanks for your approach 'bigearsbilly'.

But are there any otherway, than the aphanumeric comparision for the date field? I'm very curious to know more?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl:Script to append date and time stamp

Help with Perl script : I have a web.xml file with a line <display-name>some_text_here</display-name> Need to append the current date and time stamp to the string and save the XML file Something like <display-name>some_text_here._01_23_2014_03_56_33</display-name> -->Finally want... (5 Replies)
Discussion started by: gaurav99
5 Replies

2. Shell Programming and Scripting

Randomly selecting sequences and generating specific output files

I have two files containing hundreds of different sequences with the same Identifiers (ID-001, ID-002, etc.,), something like this: Infile1: ID-001 ATGGGAGCGGGGGCGTCTGCCTTGAGGGGAGAGAAGCTAGATACA ID-002 ATGGGAGCGGGGGCGTCTGTTTTGAGGGGAGAGAAGCTAGATACA ID-003... (18 Replies)
Discussion started by: Xterra
18 Replies

3. Shell Programming and Scripting

Selecting lowest and highest values in columns 1 and 2, based on subsets in column 3

Hi, I have a file with the following columns: 361459 447394 CHL1 290282 290282 CHL1 361459 447394 CHL1 361459 447394 CHL1 178352861 178363529 AGA 178352861 178363529 AGA 178363657 178363657 AGA Essentially, using CHL1 as an example. For any line that has CHL1 in... (2 Replies)
Discussion started by: hubleo
2 Replies

4. Shell Programming and Scripting

Joining multiple files based on one column with different and similar values (shell or perl)

Hi, I have nine files looking similar to file1 & file2 below. File1: 1 ABCA1 1 ABCC8 1 ABR:N 1 ACACB 1 ACAP2 1 ACOT1 1 ACSBG 1 ACTR1 1 ACTRT 1 ADAMT 1 AEN:N 1 AKAP1File2: 1 A4GAL 1 ACTBL 1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies

5. Programming

selecting values of date

In a table, date is stored in a column as "2011-01-4". If I write query to get the dates > "2011-01-06" , then the date "2011-01-4" is also listed. The date stored in the column is a varchar datatype. So how can I make a query to not display the date "2011-01-4" ? Is there any solution ? Thank... (4 Replies)
Discussion started by: gameboy87
4 Replies

6. Shell Programming and Scripting

Selecting rows based on values in columns

Hi My pipe delimited .txt file contains rows with 10 columns. Can anyone advise how I output to file only those rows with the letters ‘ci' as the first 2 characters in the 3rd column ? Many thanks (4 Replies)
Discussion started by: malts18
4 Replies

7. Shell Programming and Scripting

Delete Files Based on Datetime Stamp

I have a Unix directory, let's call it /home/id for example purposes. It contains the following files: oldfile.txt.20091101, oldfile.txt.20091102, oldfile.txt.20091103, etc. I am trying to create a Korn Shell script that will go to /home/id and delete any oldfile.txt that has a datetime stamp... (1 Reply)
Discussion started by: ijmoore
1 Replies

8. UNIX for Dummies Questions & Answers

How to search for files based on the time stamp

Hi All, I know the timestamp of a file. Now i would like to list all the files in the with the same time stamp in the same file. Any help would be appreciated. Thanks. sunny (1 Reply)
Discussion started by: sunny_03
1 Replies

9. UNIX for Dummies Questions & Answers

Need to delete the files based on the time stamp of the file

Hi Everyone, I want to delete some files in a path based on the time stamp of the file that is i want to delete the file once in a month. Can any one help me on this? Thanks in advance (2 Replies)
Discussion started by: samudha
2 Replies

10. UNIX for Dummies Questions & Answers

How to Zip the files from date Stamp to end date Stamp

Hi, I need to zip the list of files using from date Stamp to end date Stamp, How can I filter and make FromDate_EndDate.gzip? any idea? (1 Reply)
Discussion started by: redlotus72
1 Replies
Login or Register to Ask a Question