![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| regex question | xiamin | Shell Programming and Scripting | 3 | 03-05-2009 02:53 AM |
| Perl regex help - matching parentheses | cvp | Shell Programming and Scripting | 7 | 02-27-2009 05:38 PM |
| how do i strip this line using perl regex. | ramky79 | Shell Programming and Scripting | 1 | 03-18-2008 12:10 PM |
| regex question | arushunter | Shell Programming and Scripting | 8 | 01-04-2007 05:49 PM |
| regex question | rocketkids | UNIX for Dummies Questions & Answers | 6 | 02-12-2004 05:49 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
Perl regex question
I have the following code:
Code:
#!/usr/bin/perl -w
@files = <*.csv>;
foreach $file (@files) {
open(FH, $file) || die("Error: Cannot open file $file for reading.");
my @dt = ($file =~ /^(\w+).(\d{6})\.csv$/);
while (<FH>) {
print "@dt[0] $_\n";
}
close(FH);
}
|
|
||||
|
Well, I did come up with this, but it may not be any more efficient than what you had and might even be less efficient, you would have to benchmark both codes to know which is really better.
Code:
my %files = map {/^(\w+).\d{6}\.csv$/; $_ => $1} <*.csv>;
print Dumper \%files;
foreach my $file (keys %files) {
open(FH, $file) || die("Error: Cannot open file $file for reading.");
while (<FH>) {
print "$files{$file} $_\n";
}
close(FH);
}
/^(\w+).\d{6}\.csv$/ what is the dot in there for after (\w+)? |
|
||||
|
Thank you for your reply and have been experimenting with this a little. Performance gain (or loss) is minor. Am still working on a built-in timer, but the differential is mere seconds (if any) on a total body of about 200 files and combined requiring 40MB.
And the dot (.) is the part of the file name: w+ being the standard file name and d{6} being the 24hr time of the time of download. So a file would have a name such as: scores.234506.csv Last edited by figaro; 07-17-2008 at 01:09 PM.. |
|
||||
|
split() is a regexp.
|
| Sponsored Links | ||
|
![]() |
| Bookmarks |
| Tags |
| perl, perl regex, regex |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|