Sponsored Content
Contact Us Post Here to Contact Site Administrators and Moderators How to Post in the The UNIX and Linux Forums How to get defined precision after arithmetic operation using syncsort? Post 303014607 by pumrao on Friday 16th of March 2018 01:21:18 AM
Old 03-16-2018
Lightbulb How to get defined precision after arithmetic operation using syncsort?

I have to do some arithmetic operation on Field 8 which is calculated by Field 9/Field 7

Suppose i have data like :
Code:
0800123456|JAN|2017|JAN|2018|0800123456|0|0.0000|0.00|
0800234567|JAN|2017|JAN|2018|0800234567|4|2.5812|10.32|
0800666666|JAN|2017|JAN|2018|0800666666|2|1.7255|3.45|
0800111111|DEC|2015|DEC|2018|0800111111|2|1.8312|7.32|
0800123456|JAN|2017|JAN|2018|0800123456|0|0.0000|0.00|
0800234567|JAN|2017|JAN|2018|0800234567|4|2.5812|10.32|
0800111111|DEC|2015|DEC|2018|0800111111|4|1.8312|7.32|

I used following code :
Code:
syncsort << endofsort
/INFILE $IN_FILE "|"

/fields
P_NUMBER 1:-1: en,
B_MONTH 2:-2:,
B_YEAR 3:-3: en,
D_MONTH 4:-4:,
D_YEAR 5:-5: en,
C_NUMBER 6:-6: en,
CALL_MINS 7:-7: en,
PRICE_PER_UNIT 8:-8: en,
AMOUNT 9:-9: en,

/CONDITION UNIT_PRICE_ZERO CALL_MINS = 0

/KEYS P_NUMBER ascending,B_MONTH ascending, B_YEAR ascending, D_MONTH ascending,D_YEAR ascending,C_NUMBER ascending

/SUMMARIZE
TOTAL CALL_COUNT,
TOTAL CALL_MINS,
TOTAL AMOUNT,

/DERIVEDFIELD NEW_PRICE_PER_UNIT
IF UNIT_PRICE_ZERO then PRICE_PER_UNIT
ELSE AMOUNT/CALL_MINS en 20 10/4 COMPRESS

/DERIVEDFIELD DEL "|"

/OUTFILE $OUT_FILE OVERWRITE

/REFORMAT
P_NUMBER,B_MONTH,B_YEAR,D_MONTH,D_YEAR,C_NUMBER,CALL_MINS,PRICE_PER_UNIT,DEL,AMOUNT

/STATISTICS /* Sends SyncSort */
/END
endofsort

Here i want to maintain 4 precision of unit price field.
COMPRESS is used to compress extra spaces but it also compress zeros of precision.

Can anyone suggest how to get required output.

Last edited by MadeInGermany; 03-16-2018 at 04:11 AM.. Reason: added code tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simple arithmetic operation

I have no idea why I can't get this to work, if anybody can help i would appreciate it. #!/bin/bash x=`cat counter.txt | wc -l` y= '$x / 7' printf "%d People have visited this page" $y :confused: (2 Replies)
Discussion started by: paladyn_2002
2 Replies

2. Shell Programming and Scripting

Help with arithmetic operation

I am using egrep to extract numbers from a file and storing them as variables in a script. But I am not able to do any arithmetic operations on the variables using "expr" because it stores them as char and not integers. Here is my code and the error I get. Any help will be appreciated. #!/bin/sh... (3 Replies)
Discussion started by: emjayshaikh
3 Replies

3. UNIX for Dummies Questions & Answers

arithmetic operation on two columns

Hi, All, I have a file, its content is as follows: 100 150 120 135 140 170 I want to insert a column, its content is determined by the difference between the two values in the same line, if the difference is less than 20, the new value is 1, otherwise is 0. after the operation, the... (1 Reply)
Discussion started by: Jenny.palmy
1 Replies

4. Shell Programming and Scripting

How to perform arithmetic operation on date

Hi all, I would appreciate if anyone knows how to perform adding to date. As for normal date, i can easily plus with any number. But when it comes to month end say for example 28 Jun, i need to perform a plus with number 3, it will not return 1 Jul. Thanks in advance for your help. (4 Replies)
Discussion started by: agathaeleanor
4 Replies

5. Shell Programming and Scripting

Arithmetic operation with awk

I have output like following in a file usmtnz-dinfsi19 72 71 38 1199 1199 0.8 19:23:58 usmtnz-dinfsi19 72 71 38 1199 1199 0.8 19:24:04 (9 Replies)
Discussion started by: fugitive
9 Replies

6. Shell Programming and Scripting

Arithmetic operation between columns using loop variable

Hi I have a file with 3 columns. say, infile: 1 50 68 34 3 23 23 4 56 ------- ------- I want to generate n files from this file using a loop so that 1st column in output file is (column1 of infile/(2*n+2.561)) I am doing like this: for ((i=1; i<=3; i++)) do a=`echo... (3 Replies)
Discussion started by: Surabhi_so_mh
3 Replies

7. Shell Programming and Scripting

floating point arithmetic operation error

I am writing a script in zsh shell, it fetchs a number from a file using the awk command, store it as a variable, which in my case is a small number 0.62000. I want to change this number by multiplying it by 1000 to become 620.0 using the command in the script var2=$((var1*1000)) trouble is... (2 Replies)
Discussion started by: piynik
2 Replies

8. UNIX for Dummies Questions & Answers

Basic arithmetic operation with awk?

input: Name|Operation rec_10|1+2+2- Output: rec_10|1 Basically I am trying to calculate the result of "the path" in $3 where the operators follow the number and not preceding them like we normally do: rec_10: +1+2-2=1 But I realise (I am sure there is a good reason for that) that awk... (7 Replies)
Discussion started by: beca123456
7 Replies

9. Shell Programming and Scripting

Arithmetic operation in variable

Hi, Here is the script i try to perform arithmetic operation in two variables . git branch -r | while read brname ; do REV_COMMITS=`git rev-list --count $brname` echo "$brname has $REV_COMMITS" (( TOTAL = TOTAL + REV_COMMITS )) echo "in loop" $TOTAL done echo "total is " $TOTAL ... (3 Replies)
Discussion started by: greet_sed
3 Replies

10. Shell Programming and Scripting

Using awk to do arithmetic operation

Hi, I've this following text file FileVersion = 1.03 Filetype = meteo_on_curvilinear_grid TIME = 0 hours since 2016-10-03 12:00:00 +00:00 -6.855 -6.828 -6.801 -6.774 -6.747 -6.719 -6.691 -6.663 -6.634 -6.606 -6.577 -6.548 -6.519 -6.489 TIME = 0 hours since... (2 Replies)
Discussion started by: xisan
2 Replies
AWSRES(1)							 AWS User's Guide							 AWSRES(1)

NAME
awsres - build resource files for Ada Web Server applications SYNOPSIS
awsres [-h] [-r unit] [-q] file... DESCRIPTION
The Ada Web Server is a library that allows you to embed a web server into your Ada application. It provides not only HTTP but also SOAP, WSDL and several other facilities. Thus you can write full-fledged web applications. awsres allows you to embed resources, such as pic- tures, into your final executable, so that your executable is completely self-contained and does not need to read other files at run time. awsres works by creating Ada source files that contain the data for your resources as arrays of bytes. You then compile these Ada source files into your executable. At run time, the AWS library automatically loads the resources from the executable whenever available. awsres creates one parent Ada package named, by default, `res', and one child package for each of the files given on the command line. The package `res' registers each resource when your application starts. To link `res' into your executable you simply add a `with res;' state- ment in one of your source files. EXAMPLE
$ ls image.png $ awsres image.png AWSRes - Resource Creator v1.0 creating image.png... -> registered $ ls res.adb res.ads res-image_png.ads image.png OPTIONS
-h Display help message. -r name Set the root unit name. Default is `res'. -q Quiet mode. SEE ALSO
wsdl2aws(1) The Ada Web Server User's Guide in package libaws1-doc. AUTHOR
awsres was written by Dmitriy Anisimkov <anisimkov@yahoo.com> and Pascal Obry <p.obry@wanadoo.fr> as part of the Ada Web Server. This manual page was written by Ludovic Brenta <ludovic.brenta@insalien.org> for Debian GNU/Linux. GNU Ada Tools 29 JAN 2004 AWSRES(1)
All times are GMT -4. The time now is 04:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy