Division by zero error message in AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Division by zero error message in AWK
# 1  
Old 12-08-2009
Division by zero error message in AWK

How can I modify my awk code to get rid of the divion by zero error message? If I run the script without an input file, it should return error message "Input file missing" but not divison by zero.

Code:

#!/bin/nawk -f
BEGIN {
if (NR == 0)
{print "Input file missing"}

}

{

sum=sum + $1
}

END {print "Average is", sum/NR}
# 2  
Old 12-08-2009
Test if NR is 0 before you do the sum/NR

Code:
END {
  if ( NR )
      print "Average is", sum / NR
    else
     print "Input file missing"
}

And remove the if statement from your BEGIN clause.
# 3  
Old 12-08-2009
Scottn, you are right, remove the wrong code.

Last edited by rdcwayx; 12-08-2009 at 08:27 PM..
# 4  
Old 12-08-2009
Calling exit won't prevent the END clause from being executed.

Code:
$ awk '{exit} END {print 3/((NR>0)?NR:1)}' x
3

If you don't pass a filename awk will wait for input.

In the BEGIN clause add:

Code:
if( ARGC == 1 ) exit

to prevent this.

Last edited by Scott; 12-08-2009 at 08:55 PM..
# 5  
Old 12-09-2009
Thanks so much. That works
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk - continue when encountered division error

Hello, How can I add a logic to awk to tell it to print 0 when encountering a division by zero attempted? Below is the code. Everything in the code works fine except the piece that I want to calculate read/write IO size. I take the kbr / rs and kbw / ws. There are times when the iostat data... (5 Replies)
Discussion started by: tommyd
5 Replies

2. Shell Programming and Scripting

awk - Division with condition

Hi Friends, I have an input file like this cat input chr1 100 200 1 2 chr1 120 130 na 1 chr1 140 160 1 na chr1 170 180 na na chr1 190 220 0 0 chr1 220 230 nd 1 chr2 330 400 1 nd chr2 410 450 nd nd chr3 500 700 1 1 I want to calculate the division of 4th and 5th columns. But, if... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

3. Shell Programming and Scripting

awk & division

vmstat|awk '{print $3}'|tail -1 returns 6250511, but what I need is 24416, which is 6250511 divided by 256. Please advise. Thank you so much (2 Replies)
Discussion started by: Daniel Gate
2 Replies

4. Shell Programming and Scripting

Division problem -Awk

input one two three four 0 0 0 10424 0 102 0 15091 1 298 34 11111 0 10 0 1287 scripts awk 'NR>1{print ($1/$2) / ($3/$4)}' awk 'NR>1{ if ($1 ||$3 ||$2|| $4 == 0) print 0; else print (($1/$2)/($3/$4))}' error awk: division by zero input record number 1, file rm source line... (9 Replies)
Discussion started by: quincyjones
9 Replies

5. Shell Programming and Scripting

awk division error - 0

input 0 0 9820373 2069 0 0 11485482 awk '{print ($1/$3) / ($4/$7)}' input error Is there any way to fix this problem ? (25 Replies)
Discussion started by: quincyjones
25 Replies

6. UNIX for Advanced & Expert Users

awk: division by zero

I received error "awk: division by zero" while executing the following statement. SunOS 5.10 Generic_142900-15 sun4us sparc FJSV,GPUZC-M echo 8 | awk 'END {printf ("%d\n",NR/$1 + 0.5);}' file1.lst awk: division by zero Can someone provide solution? Thanks Please use code... (11 Replies)
Discussion started by: kumar77
11 Replies

7. Shell Programming and Scripting

Error message while using awk

Hi Friends, I am using the below code in my script: elif then NEW_LINE=`echo $Line | awk '{sub ($4, "2010\\\/04\\\/07"); printf "# %s %9s %18s\n", $2,$3,$4}'` sed $n" s/.*/$NEW_LINE/" kfile > tmp mv tmp kfile fi Around 30 lines are replaced by this code... (2 Replies)
Discussion started by: sugan
2 Replies

8. Shell Programming and Scripting

awk error message: division by zero attempted

Hi, I'm executing unixbench tool v4.1 on an embedded system and I'm getting these error messages: Execl Throughput 1 2 3awk: /unixbench/unixbench-4.1.0/pgms/loops.awk:38: (FILENAME=- FNR=4) fatal: division by zero attempted Pipe Throughput 1 2 3 4 5 6 7 8 9 10awk:... (3 Replies)
Discussion started by: rogelio
3 Replies

9. Shell Programming and Scripting

awk Division and modulus

I need to read the file divide 3 column with 2nd and run a modulus of 10 and check whether the remainder is zero or not if not print the entire line. cat filename | awk '{ if ($3 / $2 % 10 != 0) print $0}' Whats wrong with it ? (4 Replies)
Discussion started by: dinjo_jo
4 Replies

10. Shell Programming and Scripting

error "awk: (FILENAME=- FNR=23) fatal: division by zero attempted"

Hi , I have file : after i run this command : there are error can we print blank line if output error ?? thanks.. ^^ (4 Replies)
Discussion started by: justbow
4 Replies
Login or Register to Ask a Question