Hi All,
Requirement :
1.read the content of the dir
2.seach for "prstat-Lvs" file
3.rename this file to *.txt (as this file doesn't have the file typeextension --raw file)
4.open this *.txt file & search for K&M
5.replace all K instance to *3 (manuplication)
6.replace all M instance to *4 (manuplication)
7.stored this calcuation in new file
8.rename this new file back to raw file
9.delete all the *.txt files
i have acheived this half a way (till step no 7) but the problem is, if i have more than 1 prstat-Lvs file, then code doesn't gives the correct raw files but instead it will give only 1 correct raw file & other one will be the replica of another.
-
my $dir = "C:\\Performance_svap\\INPUT_FILES\\*";
-
my @file=glob("$dir");
-
my $f;
-
my $f2;
-
my $oldfile;
-
my @newfile;
-
my @txtfile;
-
foreach $f (@file){
-
if ($f =~ /prstat-Lvs/){
-
push (@prstat_Lvs,$f);
-
foreach my $a (@prstat_Lvs){
-
$oldfile = $a;
-
my $newfile = $f . ".txt";
-
rename($f,$newfile);
-
push(@txtfile,$newfile);
-
open (FH1,"$newfile") or die "Can't open $newfile : $!";
-
$f2 = $a."new";
-
$f2= $f2 . ".txt";
-
open FH2, '>', $f2 or die "Couldn't open $f2: $!";
-
while (<FH1>) {
-
@a_list=split(' ', $_);
-
$new_line=" ";
-
foreach $entry (@a_list) {
-
if($entry =~ /K$/) {
-
chop($entry);
-
$entry=$entry*3;
-
}
-
if($entry =~ /M$/) {
-
chop($entry);
-
$entry=$entry*4;
-
}
-
$new_line=$new_line." ".$entry;
-
}
-
print FH2 "$new_line\n";
-
}
-
}
-
-
close FH1;
-
push(@newfile,$f2);
-
close FH2;
-
foreach my $k(@newfile){
-
rename($k,$a);
-
}
-
foreach my $j(@txtfile){
-
unlink $j;
-
}
-
}
-
}
-
can i avoid step 7, instead just open the *.txt--do calculation--replace the value in the same file & rename it back to orginial raw file name ???
Thanks,
Vijayarl