need help with gawk script


 
Thread Tools Search this Thread
Top Forums Programming need help with gawk script
# 1  
Old 12-06-2010
need help with gawk script

hi i've already created this script. When I execute the script it takes the argument and compares it to the 3rd column of the script. What I was wondering if I could get some help with is. I want to add another column to the script and it will be the result of a set number for example, (2000 - 3rd column)/4th column.

Code:
cat file
text     text      600     80      text


Code:
while read line
do
let arg=$1
gawk '{{
        if ($3 < '$arg')  printf  "*%-10s %-8s   %2d   %5d    $ %8.2f\n", $1, $2, $3, $4, $5;
else
 printf "%-10s %-8s   %2d   %5d    $ %8.2f\n", $1, $2, $3, $4, $5 }}'

done < file

I am looking for the result to come out like

Code:
text     text      600     80      text     (Result of (2000-600)/80)

It might be something like this but I was having trouble in writing a code to work in the printf field.

Code:
while read line
do
let arg=$1
let set=2000

gawk '{{
        if ($3 < '$arg')  printf  "*%-10s %-8s   %2d   %5d    $ %8.2f\n", $1, $2, $3, $4, $5, $6;
else
 printf "%-10s %-8s   %2d   %5d    $ %8.2f\n", $1, $2, $3, $4, $5 }}'

done < file

thanks for the help
# 2  
Old 12-07-2010
----------

Last edited by DGPickett; 12-07-2010 at 04:43 PM..
# 3  
Old 12-07-2010
Code:
awk -v set="2000" '{printf("%s%8.2f\n", $0, (set-$3)/$4)}' file

# 4  
Old 12-07-2010
thanks I kinda figured it out, it wasn't the perfect way but it worked. heres the code in case anyone needs it in the future.



Code:
let arg=$1
gawk < file '{{
        if ($3 <= '$arg')
{
set=2010
avg=($4/(set-$3))

printf "*%-10s %-8s   %2d   %5d    $ %8.2f", $1, $2, $3, $4, $5, $6
print  "  "avg
}
 else
 {
set=2010
avg=($4/(set-$3))

 printf "%-10s %-8s   %2d   %5d    $ %8.2f", $1, $2, $3, $4, $5, $6
print  "  "avg
}}

}'

I probably would like to make it look cleaner if anyone knew how to put the avg into the printf fields. Thank you guys
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Gawk program not working in a script

I've written a very simple gawk program which runs when I execute it at the POSIX shell but the corresponding '.awk' script I wrote doesn't return any data. I'm on an HP-UX running gawk version 3.1. (w/all the defaults) (As you can probably guess I'm a newbie going through the manual and trying... (2 Replies)
Discussion started by: RUCerius
2 Replies

2. Shell Programming and Scripting

[BASH] Gawk + MYSQL script

Hello! I've got script to write. It should read databases (names, volumes) from table testdatabase and compares it to actually existing databases in /var/lib/mysql/. If there is no informations about database in table - we should see information "There is no declared informations about database... (1 Reply)
Discussion started by: Zimny
1 Replies

3. Shell Programming and Scripting

gawk script to search and replace text in a flat file

Hi I am new to unix and newbie to this forum. I need help in writing a gawk script that search and replace particular text in a flat file. Input file text : ZIDE_CONTROL000 100000000003869920900000300000001ISYNC 000002225489 0000000002232122 20120321 16:40:53 ZIDE_RECORD000... (5 Replies)
Discussion started by: gkausmel
5 Replies

4. Shell Programming and Scripting

Help with gawk array, loop in tcsh script

Hi, I'm trying to break a large csv file into smaller files and use unique values for the file names. The shell script i'm using is tcsh and i'm after a gawk one-liner to get the desired outcome. To keep things simple I have the following example with the desired output. fruitlist.csv apples... (6 Replies)
Discussion started by: theflamingmoe
6 Replies

5. Windows & DOS: Issues & Discussions

Gawk Script in Windows batch file - Help

Good morning all. I have been running into a problem running a simple gawk script that selects every third line from an input file and writes it to an output file. gawk "NR%3==0" FileIn > FileOut I am attempting to run this command from a batch file at the command line. I have several hundred... (6 Replies)
Discussion started by: 10000springs
6 Replies

6. Shell Programming and Scripting

Help with gawk script that aggregates ip address ranges

Howdy folks, perhaps someone can help me with this problem. My knowledge of awk is not the best... but I've managed to a certain degree and now I'm stuck. These are the steps and the format outputs, problem is written in red text after the STEP 2: STEP 1 Unformated text file (100+... (3 Replies)
Discussion started by: gustisok
3 Replies

7. Shell Programming and Scripting

Issues with filtering duplicate records using gawk script

Hi All, I have huge trade file with milions of trades.I need to remove duplicate records (e.g I have following records) 30/10/2009,trdeId1,..,.. 26/10/2009.tradeId1,..,..,, 30/10/2009,tradeId2,.. In the above case i need to filter duplicate recods and I should get following output.... (2 Replies)
Discussion started by: nmumbarkar
2 Replies

8. Shell Programming and Scripting

gawk script

Hey guys need your help with an gawk script... here's what I have so far gawk '^d/ {printf "%-20s %-10s %-10s %-10s %-4s%2s %5s\n",$9,$1,$3,$4,$6,$7,$8}' ls.kbr The file ls.kbr is a capture of 'ls-al' What I want gawk to do is: 1) Find only directories (this is working) 2) skip lines... (2 Replies)
Discussion started by: zoo591
2 Replies

9. UNIX for Dummies Questions & Answers

Calculating field using AWK, or GAWK script

Hello all, I'm totally new to UNIX/Linux but I'm taking a course in it at my local JC. My question: I have been tasked with writing a gawk script that will create a nicely formatted report. That part I've done ok on...however, the very last thing that must be done is a calculation of a... (4 Replies)
Discussion started by: Trellot
4 Replies

10. Shell Programming and Scripting

how to use variables and gawk in a script?

Hi, I want to define variables in a shell script and make gawk use them to make some operations Mfn = $(grep " 1 " $fitxer | gawk '{print $2}') Xfn = $(grep " 1 " $fitxer | gawk '{print $3}') Yfn = $(grep " 1 " $fitxer | gawk '{print $4}') Zfn = $(grep " 1 " $fitxer | gawk... (9 Replies)
Discussion started by: pau
9 Replies
Login or Register to Ask a Question