While both Franklin52's and rdcwayx's solutions work for me, neither should, according to POSIX.
If i'm not mistaken, the portable way to write
is
to explicitly demand that each field variable be treated as a number.
The standard says that in a boolean context (such as the logical not), if the type is a number, 0 is false and all others are true; if the type is a string, the null string is false and all others are true. There is no conversion of type (as there is when comparing, in which case a 'numeric string' is coerced to a number if the other value is a number). So when a field is "0", that's a true value in a boolean context since it's a non-empty string.
I think I'd just go with an explicit comparison to zero, $i == 0, since it's both clear and portable (the hardcoded number 0 ensures that the field value is treated as a number).
how can i show the value when i divide a number where the dividend is greater then the divisor. for example...
3 divided by 15 ---> let x=3/15
when i do this in the shell environment it gives me an output of 0.
please help me.
thanks. (3 Replies)
hi
I am having two variables namely a=7 & b=8. I have to subtract these two variables. I am using the command
c=`expr $a / $b`
When I check the value of c, it comes out to be zero.
Please help.
Regards
Rochit (9 Replies)
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)
Hi Everyone,
a.txt
line1;a;33
line1;c;22
line1;b;0
line1;a;55
a.pl
#!/usr/bin/perl
use strict;
use warnings;
my @sorted=();
my @tmp;
my $FA;
my @F; (0 Replies)
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)
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)
hello
i try to divide 2 variables in order to get a percentage--that's why i'm not interested in integer division--but nothing seems to work
I think awk is suitable for this but i'm not quite sure how to use it..
any ideas?
here's what I want to do:
percentage = varA/varB
thank you (2 Replies)
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)
Hi Friends,
I don't understand why "a" is always being printed as zero, when I execute the following command.
awk '{if($6||$8||$10||$12==0)a=b=c=d=0;else (a=$5/$6);(b=$7/$8);(c=$9/$10);(d=$11/$12); {print... (6 Replies)
Discussion started by: jacobs.smith
6 Replies
LEARN ABOUT CENTOS
if
if(n) Tcl Built-In Commands if(n)
__________________________________________________________________________________________________________________________________________________NAME
if - Execute scripts conditionally
SYNOPSIS
if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
_________________________________________________________________DESCRIPTION
The if command evaluates expr1 as an expression (in the same way that expr evaluates its argument). The value of the expression must be a
boolean (a numeric value, where 0 is false and anything is true, or a string value such as true or yes for true and false or no for false);
if it is true then body1 is executed by passing it to the Tcl interpreter. Otherwise expr2 is evaluated as an expression and if it is true
then body2 is executed, and so on. If none of the expressions evaluates to true then bodyN is executed. The then and else arguments are
optional "noise words" to make the command easier to read. There may be any number of elseif clauses, including zero. BodyN may also be
omitted as long as else is omitted too. The return value from the command is the result of the body script that was executed, or an empty
string if none of the expressions was non-zero and there was no bodyN.
EXAMPLES
A simple conditional:
if {$vbl == 1} { puts "vbl is one" }
With an else-clause:
if {$vbl == 1} {
puts "vbl is one"
} else {
puts "vbl is not one"
}
With an elseif-clause too:
if {$vbl == 1} {
puts "vbl is one"
} elseif {$vbl == 2} {
puts "vbl is two"
} else {
puts "vbl is not one or two"
}
Remember, expressions can be multi-line, but in that case it can be a good idea to use the optional then keyword for clarity:
if {
$vbl == 1 || $vbl == 2 || $vbl == 3
} then {
puts "vbl is one, two or three"
}
SEE ALSO
expr(n), for(n), foreach(n)
KEYWORDS
boolean, conditional, else, false, if, true
Tcl if(n)