chaney123 has asked for the wisdom of the Perl Monks concerning the following question:
Hi all, below is the code that I've written. The first step is to unzip the files and later on convert them to csv files. So the question is, how to use Getopt to get to the final output without outputting the unzipped files? Now when I run the script, the clock.sum.rpt.txt and import.clock.rpt.txt will be produced. How to sort of hide them?
use strict; use warnings; use Getopt::Long qw(GetOptions); use IO::Uncompress::Gunzip qw(gunzip $GunzipError); #Unzip .gz files into .txt files # In command line run # perl getOptsLong -orig <file1_name> -new <file2_name> #GetOptions( # 'orig = s'=> $input_1 # 'new = s' => $input_2 # 'out = s' => $outfile_2 #); my $input_1 = "clock.sum.rpt.gz"; my $output_1 = "clock.sum.rpt.txt"; gunzip $input_1 => $output_1 or die"gunzip failed:$GunzipError\n"; my $input_2 = "import.clock.rpt.gz"; my $output_2 = "import.clock.rpt.txt"; gunzip $input_2 => $output_2 or die "gunzip failed:$GunzipError\n"; #Convert to cvs open my $infile_1, "<", $output_1 or die $!; open my $outfile_1, ">", "clock.sum.rpt.csv" or die $!; #$header_1 = "Clock,Sinks,Buffers,Cells,Slew,Path,Vio,Area"; my $lines_1; while(<$infile_1>){ if(/(\w+|\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\ +d+)\s+(\d+.\d+)/g){ tr/ /,/s; print $outfile_1 "$_"; $lines_1 = $_; }else{ #$lines_1 = $_; #warn "WARN: This line does not follow the normal output pattern, +"; } } #print $outfile_1 $header_1; print $outfile_1 "$lines_1\n"; close $output_1; close $outfile_1; open my $infile_2, "<", $output_2 or die $!; open my $outfile_2, ">", "import.clockrpt.csv" or die $!; my $lines_2; #my @columns_2 = ('Clock','Time','Waveform','Types','Sources'); while(<$infile_2>){ if(/(\w+)\s+(\d+.\d+)\s+(.\d+\s+\d+.\d+.)\s+/g){ tr/ /,/s; print $outfile_2 "$_"; $lines_2 = $_; }else{ #$lines_2 .= $_; #warn "WARN: This line does not follow the normal output pattern, +"; } } #print $outfile_2 "@columns_2\n"; print $outfile_2 "$lines_2\n"; close $output_2; close $outfile_2;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to use Getopt?
by huck (Prior) on Oct 03, 2017 at 01:48 UTC | |
by chaney123 (Acolyte) on Oct 10, 2017 at 02:01 UTC | |
by huck (Prior) on Oct 10, 2017 at 02:12 UTC | |
by chaney123 (Acolyte) on Oct 10, 2017 at 03:27 UTC |