Sponsored Content
Full Discussion: Perl script help
Top Forums Shell Programming and Scripting Perl script help Post 302760011 by bombcan on Wednesday 23rd of January 2013 08:58:35 AM
Old 01-23-2013
Perl script help

Hi

I'm pretty new to PERL so please bear with meSmilie

I have a df output which I need to add the used of each filesystem

Example:
Code:
anmtl004	/dev/hd4	320	37%	4253	8%	/	rootvg
anmtl004	/dev/fslv01	2048	10%	71	1%	/IBMperfpmr	rootvg
anmtl004	/dev/hd11admin	128	1%	5	1%	/admin	rootvg
anmtl004	/dev/fslv00	256	43%	371	2%	/appl/cyb_agent	rootvg
anmtl004	mtlhqnasa:/vol/nonprod01/trd/rec	943718	77%	18817636	60%	/appl/rec	
anmtl004	mtlhqnasa:/vol/nonprod01/trd/bwarchive	943718	77%	18817636	60%	/archive	
anmtl004	/dev/lvaudit	512	5%	368	1%	/audit	rootvg
anmtl004	mtlhqnasa:/vol/nonprod01/cn_dev	943718	77%	18817636	60%	/cn_dev	
anmtl004	/dev/lvSAPdb2	1024	1%	15	1%	/db2	vgSAP
anmtl004	mtlhqnasa.cn.ca:/vol/fixes	209141	83%	51782	1%	/fixes	
anmtl004	/dev/hd1	512	5%	1403	2%	/home	rootvg
anmtl004	/dev/lvlogs	256	12%	194	1%	/logs	rootvg
anmtl004	/dev/hd10opt	256	66%	3201	14%	/opt	rootvg
anmtl004	/proc	-	-	-	-	/proc	
anmtl004	mtlhqnasa:/vol/nonprod00/sapmnt_bd3	943718	74%	4928053	16%	/sapmnt/BD3	
anmtl004	mtlhqnasa:/vol/nonprod00/trd/sapmnt_bx2	943718	74%	4928053	16%	/sapmnt/BX2	
anmtl004	mtlhqnasa:/vol/nonprod00/trd/sapmnt_ed1	943718	74%	4928053	16%	/sapmnt/ED1	
anmtl004	mtlhqnasa:/vol/nonprod00/trd/sapmnt_ex1	943718	74%	4928053	16%	/sapmnt/EX1	
anmtl004	mtlhqnasa:/vol/nonprod00/trd/sapmnt_wx1	943718	74%	4928053	16%	/sapmnt/WX1	
anmtl004	/dev/hd3	2048	1%	227	1%	/tmp	rootvg
anmtl004	/dev/hd2	4416	80%	47078	16%	/usr	rootvg
anmtl004	/dev/lvSAPusr	5120	4%	215	1%	/usr/sap	vgSAP
anmtl004	/dev/lvSAPDBD3usr	128	1%	21	1%	/usr/sap/BD3	vgSAPD
anmtl004	/dev/lvSAPDBD3ascs	1024	13%	109	1%	/usr/sap/BD3/ASCS08	vgSAPD
anmtl004	/dev/lvSAPDBD3aers	1024	24%	125	1%	/usr/sap/BD3/ERS09	vgSAPD
anmtl004	/dev/lvSAPDBD3wd	3072	7%	557	1%	/usr/sap/BD3/W07	vgSAPD
anmtl004	/dev/lvSAPDBX2usr	128	1%	22	1%	/usr/sap/BX2	vgSAPX
anmtl004	/dev/lvSAPDBX2ascs	1024	7%	67	1%	/usr/sap/BX2/ASCS13	vgSAPX
anmtl004	/dev/lvSAPDBX2aers	1024	21%	91	1%	/usr/sap/BX2/ERS14	vgSAPX
anmtl004	/dev/lvSAPDBX2wd	3072	10%	378	1%	/usr/sap/BX2/W12	vgSAPX
anmtl004	/dev/lvSAPDAD	5120	16%	3480	1%	/usr/sap/DAD	vgSAP
anmtl004	/dev/lvSAPXED1usr	128	1%	19	1%	/usr/sap/ED1	vgSAPD
anmtl004	/dev/lvSAPXED1ers	1024	19%	79	1%	/usr/sap/ED1/ERS04	vgSAPD
anmtl004	/dev/lvSAPXED1scs	1024	44%	178	1%	/usr/sap/ED1/SCS03	vgSAPD
anmtl004	/dev/lvSAPXED1wd	1024	32%	392	1%	/usr/sap/ED1/W02	vgSAPD
anmtl004	/dev/lvSAPXEX1usr	128	1%	19	1%	/usr/sap/EX1	vgSAPX
anmtl004	/dev/lvSAPXEX1ers	1024	14%	76	1%	/usr/sap/EX1/ERS19	vgSAPX
anmtl004	/dev/lvSAPXEX1scs	1024	35%	177	1%	/usr/sap/EX1/SCS18	vgSAPX
anmtl004	/dev/lvSAPXEX1wd	1024	32%	406	1%	/usr/sap/EX1/W17	vgSAPX
anmtl004	/dev/lvSAPXWX1usr	128	1%	19	1%	/usr/sap/WX1	vgSAPX
anmtl004	/dev/lvSAPXWX1ers	1024	20%	42	1%	/usr/sap/WX1/ERS81	vgSAPX
anmtl004	/dev/lvSAPXWX1scs	1024	61%	194	1%	/usr/sap/WX1/SCS80	vgSAPX
anmtl004	/dev/lvSAPXWX1wd	1024	31%	380	1%	/usr/sap/WX1/W79	vgSAPX
anmtl004	mtlhqnasa:/vol/nonprod02/nasd_hostagent_depot	943718	18%	643102	3%	/usr/sap/hostagent_depot	
anmtl004	mtlhqnasa:/vol/prod00/saptrans_bw	322560	86%	2384871	9%	/usr/sap/transBW	
anmtl004	mtlhqnasa:/vol/prod00/saptrans_bwj	322560	86%	2384871	9%	/usr/sap/transBWJ	
anmtl004	/dev/hd9var	896	49%	1727	2%	/var	rootvg
anmtl004	/dev/livedump	256	1%	4	1%	/var/adm/ras/livedump	rootvg

This is what I have

Code:
#Build a lookup table
open (F,"report_df.csv") || die ("File could not be open");     #Read file in
while ( <F> ) {                                                 #for every line do

        my @line = split (",");                                 #Put each line in an array and split it at every ","
        my $host = $line[0];                                    #Every field needed is assigned a variable
        my $filesystem = $line[1];
        my $alloc_mb = $line[2];
        my $pct_used = $line[3];
        my $vg = $line[7];

$fs{$host}{$vg}{$filesystem}{"ALLOC_MB"} = $alloc_mb;           #Build the hash
$fs{$host}{$vg}{$filesystem}{"PCT_USED"} = $pct_used;
}
close F;
my @list_of_hosts = (sort keys %fs);                                    #Build an array of every host

foreach my $host (@list_of_hosts) {
        my @list_of_vg = (keys %{$fs{$host}});

        foreach my $vg (@list_of_vg) {
        my @list_of_fs = (keys %{$fs{$host}{$vg}});

                foreach my $filesystem (@list_of_fs) {
                my $alloc_mb = $fs{$host}{$vg}{$filesystem}{"ALLOC_MB"};
                my $pct_used = $fs{$host}{$vg}{$filesystem}{"PCT_USED"};
                my $free_space = (100 - $pct_used) * $alloc_mb;


                               print "$host, $filesystem, $vg\n";
}
}
}

So I need to add them now..

Thanks
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: Run perl script in the current process

I have a question regarding running perl in the current process. I shall demonstrate with an example. Look at this. sh-2.05b$ pwd /tmp sh-2.05b$ cat test.sh #! /bin/sh cd /etc sh-2.05b$ ./test.sh sh-2.05b$ pwd /tmp sh-2.05b$ . ./test.sh sh-2.05b$ pwd /etc sh-2.05b$ So... (10 Replies)
Discussion started by: vino
10 Replies

2. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

3. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

4. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

5. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

6. Shell Programming and Scripting

calling a perl script with arguments from a parent perl script

I am trying to run a perl script which needs input arguments from a parent perl script, but doesn't seem to work. Appreciate your help in this regard. From parent.pl $input1=123; $input2=abc; I tried calling it with system("/usr/bin/perl child.pl $input1 $input2"); and `perl... (1 Reply)
Discussion started by: grajp002
1 Replies

7. Shell Programming and Scripting

executing perl script from another perl script : NOT WORKING

Hi Folks, I have 2 perl scripts and I need to execute 2nd perl script from the 1st perl script in WINDOWS. In the 1st perl script that I had, I am calling the 2nd script main.pl =========== print "This is my main script\n"; `perl C:\\Users\\sripathg\\Desktop\\scripts\\hi.pl`; ... (3 Replies)
Discussion started by: giridhar276
3 Replies

8. Shell Programming and Scripting

Perl : embedding java script with cgi perl script

Hi All, I am aware that html tags can be embedded in cgi script as below.. In the same way is it possible to embed the below javascript in perl cgi script ?? print("<form action="action.htm" method="post" onSubmit="return submitForm(this.Submitbutton)">"); print("<input type = "text"... (1 Reply)
Discussion started by: scriptscript
1 Replies

9. Shell Programming and Scripting

Excuting perl script from within a perl script with variables.

Not sure what I am doing wrong here, but I can print the list with no issue. Just a blank screen with the 'do'. #!/usr/bin/perl open FILE, "upslist.txt"; while ($line=<FILE>){ if ($line=~/^(.*?),(.*?)$/){ #print "ups:$1 string:$2\n"; do 'check_snmp_mgeups-0.1.pl -H $1 -C $2'; } ... (1 Reply)
Discussion started by: mrlayance
1 Replies

10. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies
All times are GMT -4. The time now is 06:10 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy