Sponsored Content
Full Discussion: Improving code
Top Forums Shell Programming and Scripting Improving code Post 302991045 by jiam912 on Monday 6th of February 2017 06:31:42 AM
Old 02-06-2017
Improving code

Gents,

I did the below code to get an output (report) ,.. the code works fine but I believe it can be more shorted using better method.

Please if you can help, to generate same output improving the code , will be great.

here my code.

Code:
# get diff in time
awk '{$9=$8-prev8;prev8=$8;print $9/1000000}' tmp1 OFS="\t" |
awk 'NR>1{print}' | awk '{a=int($1); print a}' OFS="\t"   > tmp2

# get distance 
awk '{$9=$6-prev6;prev6=$6;print}' tmp1 OFS="\t" | awk '{$10=$7-prev7;prev7=$7;print}' OFS="\t" | 
awk '{a=(sqrt(($9)^2+($10)^2)); print a/1000}' | awk 'NR>1{print}' | awk '{a=int($1); print a }' OFS="\t"  > tmp3

paste tmp3 tmp2 > tmp4

# filter by conditions
vpff=`awk  '$2>=18 { ++count } END{ print count +1 }' tmp4`
vpds4a=`awk  '$1>=2 && $1<=5 && $2<18 { ++count } END{ print count }' tmp4`
vpds4b=`awk  '$1>5 && $1<=11 && $2<18 { ++count } END{ print count }' tmp4`
vpds4=$(($vpds4a+vpds4b))
vpdsss=`awk  '$1>11 && $2<18 { ++count } END{ print count }' tmp4`

printf "      INFO1:     $vpff \n" > tmp5
printf "      INFO2:     $vpds4\n" >> tmp5
printf "      INFO3:     $vpdsss \n" >> tmp5

# average for each lien
awk 'FNR==NR{sum+=$2;next}; {printf ("%s %4d %4.1f\n", $1,$2,($2/sum)*100)}' tmp5{,} > tmp6 

# report
awk 'BEGIN{
printf ("\t-------------------------------------------\n")
print ("\tCode \t           Total-VPs \t  Total-PCT")
printf ("\t-------------------------------------------\n")
}
{
sum2 += $2;
printf ("\t%-15s\t%9d\t%8.1f\n",$1,$2,$3)
}
END {
printf ("\t-------------------------------------------\n")
printf ("\tTotal:\t%17d\n",sum2)
printf ("\t-------------------------------------------\n")
}' tmp6

attached input file..

Thanks and regards..

Last edited by jiam912; 02-06-2017 at 10:21 AM..
 

6 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

improving my script

Hi; I want to access our customer database to retreive all clients that have as language index 2 or 3 and take their client number. My input is a file containing all client numbers. i access the data base using a function call "scpshow". The total number of clients i want to scan is 400 000... (6 Replies)
Discussion started by: bcheaib
6 Replies

2. UNIX for Dummies Questions & Answers

Improving Unix Skills

Kindly any advice to improve my unix skills as electronic books i can download or valuable sites as this one etc... (3 Replies)
Discussion started by: sak900354
3 Replies

3. Shell Programming and Scripting

Improving this validate function

Hi guys, I use this function which was provided to me by someone at this site. It works perfectly for validating a users input option against allowed options.. example: validateInput "1" "1 3 4 5" would return 0 (success) function validateInput { input=$1 allowedInput=$2 for... (4 Replies)
Discussion started by: pyscho
4 Replies

4. Shell Programming and Scripting

Improving code by using associative arrays

I have the following code, and I am changing it to #!/bin/bash hasArgumentCModInfile=0 hasArgumentSrcsInfile=0 hasArgumentRcvsInfile=0 OLDIFS="$IFS" IFS="|=" # IFS controls splitting. Split on "|" and "=", not whitespace. set -- $* # Set the positional... (3 Replies)
Discussion started by: kristinu
3 Replies

5. Shell Programming and Scripting

Basic help improving for in loop

I'm obviously very new to this. I'm trying to write a simple for loop that will read the directory names in /Users and then copy a file into the same subdir in each user directory. I have this, and it works but it isn't great. #!/bin/bash HOMEDIRS=/Users/* for dirs in $HOMEDIRS; do if ];... (5 Replies)
Discussion started by: Heath_T
5 Replies

6. Shell Programming and Scripting

Need help improving my script.

Thank you for taking the time to look at this and provide input. To start, I am not a linux/unix expert but I muddle through the best I can. I am also in no way shape or form a programmer. Please keep that in mind as you read this script. This script is designed to find all files in a given... (8 Replies)
Discussion started by: garlandxj11
8 Replies
IGAWK(1)							 Utility Commands							  IGAWK(1)

NAME
igawk - gawk with include files SYNOPSIS
igawk [ all gawk options ] -f program-file [ -- ] file ... igawk [ all gawk options ] [ -- ] program-text file ... DESCRIPTION
Igawk is a simple shell script that adds the ability to have ``include files'' to gawk(1). AWK programs for igawk are the same as for gawk, except that, in addition, you may have lines like @include getopt.awk in your program to include the file getopt.awk from either the current directory or one of the other directories in the search path. OPTIONS
See gawk(1) for a full description of the AWK language and the options that gawk supports. EXAMPLES
cat << EOF > test.awk @include getopt.awk BEGIN { while (getopt(ARGC, ARGV, "am:q") != -1) ... } EOF igawk -f test.awk SEE ALSO
gawk(1) Effective AWK Programming, Edition 1.0, published by the Free Software Foundation, 1995. AUTHOR
Arnold Robbins (arnold@skeeve.com). Free Software Foundation Nov 3 1999 IGAWK(1)
All times are GMT -4. The time now is 09:56 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy