the following expression works expected:
$ awk 'begin {print 4/3}' 1.33333 however if use variable in place of literal value not print expected:
$ awk -v foo=4/3 'begin {print foo}' 4/3 how can use use variable awk printf expression?
this workaround:
$ printf 'begin {print %s}' 4/3 | awk -f- 1.33333
note foo=4/3 sets foo string 4/3. when printed via %f, '4/3' treated 4; when printed %s, printed 4/3. if want evaluate expression, need evaluated inside script.
for example:
awk 'end {printf "%f\n", foonum/fooden }' foonum=4 fooden=3 /dev/null note bash not floating point arithmetic. produces 1 output:
awk 'end {printf "%s\n", foo }' foo=$((4/3)) /dev/null maybe want use bc:
$ bc -l <<< "4/3" 1.33333333333333333333 $
Comments
Post a Comment