manpagez: man pages & more
info gawk
Home | html | info | man

gawk: Nondecimal Data

 
 12.1 Allowing Nondecimal Input Data
 ===================================
 
 If you run 'gawk' with the '--non-decimal-data' option, you can have
 nondecimal values in your input data:
 
      $ echo 0123 123 0x123 |
      > gawk --non-decimal-data '{ printf "%d, %d, %d\n", $1, $2, $3 }'
      -| 83, 123, 291
 
    For this feature to work, write your program so that 'gawk' treats
 your data as numeric:
 
      $ echo 0123 123 0x123 | gawk '{ print $1, $2, $3 }'
      -| 0123 123 0x123
 
 The 'print' statement treats its expressions as strings.  Although the
 fields can act as numbers when necessary, they are still strings, so
 'print' does not try to treat them numerically.  You need to add zero to
 a field to force it to be treated as a number.  For example:
 
      $ echo 0123 123 0x123 | gawk --non-decimal-data '
      > { print $1, $2, $3
      >   print $1 + 0, $2 + 0, $3 + 0 }'
      -| 0123 123 0x123
      -| 83 123 291
 
    Because it is common to have decimal data with leading zeros, and
 because using this facility could lead to surprising results, the
 default is to leave it disabled.  If you want it, you must explicitly
 request it.
 
      CAUTION: _Use of this option is not recommended._  It can break old
      programs very badly.  Instead, use the 'strtonum()' function to
      convert your data (⇒String Functions).  This makes your
      programs easier to write and easier to read, and leads to less
      surprising results.
 
      This option may disappear in a future version of 'gawk'.
 
© manpagez.com 2000-2018
Individual documents may contain additional copyright information.