Help I need this variable $time to show last hour (00..23) So if hour is 00, I want 23. If hour is 01, I want 00, etc.....
I can run that awk statement on the command line and it works great, but if I try it in the script it fails with an awk syntax error... Is there a way to look at last hour with $time1 ?? I would rather keep it all perl..... #!/usr/bin/perl use strict; use POSIX 'strftime'; use warnings; use Memoize; my $dir = "/opt/week/"; my $dirfiles = ""; #my $time1 = strftime "%y%m%d%H", localtime; my $time = system("/bin/date +%H | awk -F '{if ($1 == 00) print 23; else if ($1 <= 10) print 0$1 -1; else print $1 -1}'"); opendir(DIR, $dir) || die ("Open Dir Failed: $!\n"); my @files = grep(!/^\.\.?$/,readdir(DIR)); my @files = grep /ip.$time/, @files; closedir(DIR); foreach $dirfiles (@files) { @ARGV = $dir.$dirfiles; print "editing file $dirfiles\n"; die "Usage: $0 FILES\n" unless @ARGV; $^I = '.bak'; # turn on in-place editing with backups while (<>) { # process one line at a time s{ ^(\d+) }{ convert($1) }ex; print; } print "Done with $dirfiles\n"; } memoize('convert'); sub convert { strftime('%Y-%m-%d %T', localtime(shift)) } thanks rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>