Improve script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Improve script
# 22  
Old 11-28-2016
It always helps to SHOW WHAT "does not work" or what fails.
Your printout can't work as the values are incorrectly collected - in the END, i.e. printout section. There, the values are no more available; you need to collect them during the body operation.
Try
Code:
awk -F, -vCATS="-10,-5,0,15,25,35,50" '
BEGIN   {CNTLM = split (CATS, LMT)
#        LMT[CNTLM+1] = "50+"
         for (IX=1; IX<=CNTLM+1; IX++)  {MIN[IX] = "-"
                                         MAX[IX] = "-"
                                        }

         cmdsort = "sort -n"
         while (length(DASHES) < 8*(CNTLM+3)) DASHES = DASHES "--------"
        }

function PR(NM, AR, FMT, LST)   {print DASHES
                                 printf NM
                                 for (IX=1; IX<=CNTLM+1; IX++) printf FMT, AR[IX]
                                 printf LST RS
                                }


        {for (IX=1; IX<=CNTLM && $10>LMT[IX]; IX++);            # semicolon is mandatory!
         if (MIN[IX] == "-" || $10 < MIN[IX]) MIN[IX] = $10
         if (MAX[IX] == "-" || $10 > MAX[IX]) MAX[IX] = $10
         CNT[$6,IX]++ 
         COLTOT[IX]++
         LNC[$6]++
         TOT++
         }

END     {printf "FLD6"
         for (IX=1; IX<=CNTLM; IX++) printf "\t%6s", "<=" LMT[IX]
         printf "\t%6s\t    TbyV" RS, ">" LMT[--IX]
         print DASHES
         for (l in LNC)
                {printf "%4d", l | cmdsort
                 for (IX=1; IX<=CNTLM+1; IX++)  if (CNT[l,IX] > 0)      {printf "\t%6d", CNT[l,IX] | cmdsort
                                                                         NNUL[IX] ++ 
                                                                        }
                                                else                     printf "\t     -"         | cmdsort

                 printf "\t= %6d" RS, LNC[l] | cmdsort
                }
         close (cmdsort)

         for (IX=1; IX<=CNTLM+1; IX++)  COLAVG[IX] = COLTOT[IX] / TOT
         PR("TbyH", COLTOT, "\t%6d", "  =  " TOT)
         PR("TAVG", COLAVG, "\t%.4f")
         PR("TMIN", MIN,    "\t%6s")
         PR("TMAX", MAX,    "\t%6s")
         PR("TViU", NNUL,   "\t%6d")
        }
' /tmp/tmp1.txt
FLD6	 <=-10	  <=-5	   <=0	  <=15	  <=25	  <=35	  <=50	   >50	    TbyV
--------------------------------------------------------------------------------
   2	     -	     -	     2	  1091	   118	     9	     1	     -	=   1221
   8	     -	     -	     4	  1193	     3	     1	     -	     -	=   1201
   9	     -	     -	     2	  1180	     3	     -	     -	     -	=   1185
  10	     -	     -	     2	   750	    24	     3	     -	     -	=    779
  12	     -	     -	     2	   967	    31	     -	     -	     -	=   1000
  13	     -	     -	     3	   967	     4	     -	     -	     -	=    974
  14	     -	     -	     -	   369	     7	     1	     -	     -	=    377
  15	     -	     -	     4	   916	    19	     -	     -	     -	=    939
  18	     -	     -	     2	   769	     6	     1	     -	     -	=    778
  22	     -	     -	     2	  1034	   169	    12	     -	     -	=   1217
  24	     -	     -	     3	  1154	    24	     -	     -	     -	=   1181
  28	     -	     -	     -	  1100	    48	     7	     1	     -	=   1156
--------------------------------------------------------------------------------
TbyH	     0	     0	    26	 11490	   456	    34	     2	     0  =  12008
--------------------------------------------------------------------------------
TAVG	0.0000	0.0000	0.0022	0.9569	0.0380	0.0028	0.0002	0.0000
--------------------------------------------------------------------------------
TMIN	     -	     -	     0	     8	    16	    26	    39	     -
--------------------------------------------------------------------------------
TMAX	     -	     -	     0	    15	    25	    31	    40	     -
--------------------------------------------------------------------------------
TViU	     0	     0	    10	    12	    12	     7	     2	     0

# 23  
Old 11-28-2016
Dear RudiC.

It is great .. many thanks..
I see the values minimum and maximum are not correct... for example in column 5 should be
Code:
min = 369 max = 1193

. but is not the case... I am trying to figure out that..

Thanks a lot
# 24  
Old 11-28-2016
Oh, now I get the requirement. What if you had explained it clearly in the first place?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Improve script and get new output file

Gents, Using the following script, I got the changes as desired in the output file called (spread_2611.x01.new). Complete file as input (spread_2611.x01). Can you please have a look to my script and improve it please. :b: Also I would like to I get a additional selecting only the records... (21 Replies)
Discussion started by: jiam912
21 Replies

2. Shell Programming and Scripting

How to improve an script?

Gents. I have 2 different scripts for the same purpose: raw2csv_1 Script raw2csv_1 finish the process in less that 1 minute raw2csv_2 Script raw2csv_2 finish the process in more that 6 minutes. Can you please check if there is any option to improve the raw2csv_2. To finish the job... (4 Replies)
Discussion started by: jiam912
4 Replies

3. Shell Programming and Scripting

Improve sftp script

Dear all, I have written two scripts to transfer files to another server outside the company. One is a batch script , and the other script calls the batch script, send the files and archive the file sent. The problem is, that I want to get the list of files which have been uploaded the the... (10 Replies)
Discussion started by: arrals_vl
10 Replies

4. UNIX for Dummies Questions & Answers

How to improve the performance of this script?

Hi , i wrote a script to convert dates to the formate i want .it works fine but the conversion is tkaing lot of time . Can some one help me tweek this script #!/bin/bash file=$1 ofile=$2 cp $file $ofile mydates=$(grep -Po '+/+/+' $ofile) # gets 8/1/13 mydates=$(echo "$mydates" | sort |... (5 Replies)
Discussion started by: vikatakavi
5 Replies

5. Shell Programming and Scripting

Var Check Script (Help improve if possible)

I am working on a script to check the var on all of my systems. Can someone help me fix it to work better or give me suggestions. #!/bin/ksh IN=/path/to/list_of_workstations.txt while read hostnames do if ping $hostnames 1 | grep alive > /dev/null then percent=`ssh -q... (3 Replies)
Discussion started by: whotippedmycow
3 Replies

6. UNIX for Dummies Questions & Answers

[please] improve my shell/SQL*Plus script

Hi We generate with PL/SQL *.csv files, archive them and mail to the customer. Here is my script (Solaris 10, ksh): #!/bin/ksh # Unix Shell Script Structure for PL/SQL queries with SQL*Plus . ~/.profile scriptdir=/opt/ora/scripts queryname1=example... (1 Reply)
Discussion started by: slashdotweenie
1 Replies

7. Shell Programming and Scripting

Want to improve the performance of script

Hi All, I have written a script as follows which is taking lot of time in executing/searching only 3500 records taken as input from one file in log file of 12 GB Approximately. Working of script is read the csv file as an input having 2 arguments which are transaction_id,mobile_number and search... (6 Replies)
Discussion started by: poweroflinux
6 Replies

8. Shell Programming and Scripting

Improve the performance of a shell script

Hi Friends, I wrote the below shell script to generate a report on alert messages recieved on a day. But i for processing around 4500 lines (alerts) the script is taking aorund 30 minutes to process. Please help me to make it faster and improve the performace of the script. i would be very... (10 Replies)
Discussion started by: apsprabhu
10 Replies

9. Shell Programming and Scripting

Any way to improve performance of this script

I have a data file of 2 gig I need to do all these, but its taking hours, any where i can improve performance, thanks a lot #!/usr/bin/ksh echo TIMESTAMP="$(date +'_%y-%m-%d.%H-%M-%S')" function showHelp { cat << EOF >&2 syntax extreme.sh FILENAME Specify filename to parse EOF... (3 Replies)
Discussion started by: sirababu
3 Replies

10. Shell Programming and Scripting

Can I improve this script ???

Hi all, Still a newbie and learning as I go ... as you do :) Have created this script to report on disc usage and I've just included the ChkSpace function this morning. It's the first time I've read a file (line-by-bloody-line) and would like to know if I can improve this script ? FYI - I... (11 Replies)
Discussion started by: Cameron
11 Replies
Login or Register to Ask a Question