Perl script help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl script help
# 8  
Old 01-23-2013
[edit] I see new requirements. Starting over again.

What about things without a VG?

Last edited by Corona688; 01-23-2013 at 12:27 PM..
# 9  
Old 01-23-2013
Code:
$ awk '{ sub(/%/,""); A[$1,$8]+=($3*(100-$4))/100; } END { for(X in A) printf("%s %.1f\n", X, A[X]/1000) }' SUBSEP=" " filename

anmtl004  2777.7
anmtl004 vgSAPD 6.9
anmtl004 vgSAP 10.2
anmtl004 rootvg 7.2
anmtl004 vgSAPX 9.1

$  perl -ane '$t{$F[0]." ".$F[7]} += $F[2]*((100-substr($F[3], 0, -1))/100); END { foreach $k ( keys %t ) { printf("%s %.1f\n", $k, $t{$k}/1000); } }' filename

anmtl004 vgSAP 10.2
anmtl004 vgSAPX 9.1
anmtl004 rootvg 7.2
anmtl004 vgSAPD 6.9
anmtl004  2777.7

$

# 10  
Old 01-24-2013
This is good but I think you just added the allocated space. Example for the vgSAP you just added the 5120*2. It's actually 49% of that so 5GB.
# 11  
Old 01-24-2013
I don't think so:

Code:
$F[2]*((100-substr($F[3], 0, -1))/100)

I add the third column ($F[2]) times 100-the fourth column($F[3]). substr removes the % from $F[3] so I can do math on it.

So for
Code:
anmtl004	/dev/lvSAPusr	5120	4%	215	1%	/usr/sap	vgSAP

it does (5120 * (100-4))/100 = 4195.2 megabytes.

BUT:

You asked me to group them by name, and never provided a complete example of output, so if there's more than one vgSAP in the same host they all get added together.

If that's not actually what you want:

Please show complete output for the input you gave so we can stop playing 20 questions Smilie
# 12  
Old 01-24-2013
BTW I really appreciate your time on this..Thanks

You have it right however 5120 is what is assigned then 4% is what is used.
So you have to calculate 4% of 5120 . As for the rest all is good. You are correct when you say "You asked me to group them by name, and never provided a complete example of output, so if there's more than one vgSAP in the same host they all get added together."
# 13  
Old 01-24-2013
Ahhh. I was looking from your original program where you used 100-%, instead of just the percent. You want the opposite.

Code:
$ awk '{ sub(/%/,""); A[$1,$8]+=($3*$4)/100; } END { for(X in A) printf("%s %.1f\n", X, A[X]/1000) }' SUBSEP=" " filename

anmtl004  6570.0
anmtl004 vgSAPD 1.6
anmtl004 vgSAP 1.0
anmtl004 rootvg 4.7
anmtl004 vgSAPX 2.6

$ perl -ane '$t{$F[0]." ".$F[7]} += $F[2]*(substr($F[3], 0, -1)/100); END { foreach $k ( keys %t ) { printf("%s %.1f\n", $k, $t{$k}/1000); } }' rootvg

anmtl004 vgSAP 1.0
anmtl004 vgSAPX 2.6
anmtl004 rootvg 4.7
anmtl004 vgSAPD 1.6
anmtl004  6570.0

$

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
Login or Register to Ask a Question