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
ExtUtils::Typemaps::OutputMap(3)			User Contributed Perl Documentation			  ExtUtils::Typemaps::OutputMap(3)

NAME
ExtUtils::Typemaps::OutputMap - Entry in the OUTPUT section of a typemap SYNOPSIS
use ExtUtils::Typemaps; ... my $output = $typemap->get_output_map('T_NV'); my $code = $output->code(); $output->code("..."); DESCRIPTION
Refer to ExtUtils::Typemaps for details. METHODS
new Requires "xstype" and "code" parameters. code Returns or sets the OUTPUT mapping code for this entry. xstype Returns the name of the XS type of the OUTPUT map. cleaned_code Returns a cleaned-up copy of the code to which certain transformations have been applied to make it more ANSI compliant. targetable This is an obscure optimization that used to live in "ExtUtils::ParseXS" directly. In a nutshell, this will check whether the output code involves calling "set_iv", "set_uv", "set_nv", "set_pv" or "set_pvn" to set the special $arg placeholder to a new value AT THE END OF THE OUTPUT CODE. If that is the case, the code is eligible for using the "TARG"-related macros to optimize this. Thus the name of the method: "targetable". If the optimization can not be applied, this returns undef. If it can be applied, this method returns a hash reference containing the following information: type: Any of the characters i, u, n, p with_size: Bool indicating whether this is the sv_setpvn variant what: The code that actually evaluates to the output scalar what_size: If "with_size", this has the string length (as code, not constant) SEE ALSO
ExtUtils::Typemaps AUTHOR
Steffen Mueller "<smueller@cpan.org"> COPYRIGHT &; LICENSE Copyright 2009, 2010, 2011, 2012 Steffen Mueller This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.16.3 2012-11-19 ExtUtils::Typemaps::OutputMap(3)
All times are GMT -4. The time now is 11:56 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy