numfmt
numfmt [OPTION]... [NUMBER]...
Convert numbers from/to human-readable strings
Options
--debug-
print warnings about invalid input
--delimiter=<X>,-d <X>-
use X instead of whitespace for field delimiter
--field=<FIELDS>-
replace the numbers in these input fields; see FIELDS below
--format=<FORMAT>-
use printf style floating-point FORMAT; see FORMAT below for details
--from=<UNIT>-
auto-scale input numbers to UNITs; see UNIT below
--from-unit=<N>-
specify the input unit size
--to=<UNIT>-
auto-scale output numbers to UNITs; see UNIT below
--to-unit=<N>-
the output unit size
--padding=<N>-
pad the output to N characters; positive N will right-align; negative N will left-align; padding is ignored if the output is wider than N; the default is to automatically pad if a whitespace is found
--header=<N>-
print (without converting) the first N header lines; N defaults to 1 if not specified
--round=<METHOD>-
use METHOD for rounding when scaling
--suffix=<SUFFIX>-
print SUFFIX after each formatted number, and accept inputs optionally ending with SUFFIX
--unit-separator=<STRING>-
use STRING to separate the number from any unit when printing; by default, no separator is used
--invalid=<INVALID>-
set the failure mode for invalid input
--zero-terminated,-z-
line delimiter is NUL, not newline
UNIT options:
-
none: no auto-scaling is done; suffixes will trigger an error
-
auto: accept optional single/two letter suffix:
1K = 1000, 1Ki = 1024, 1M = 1000000, 1Mi = 1048576,
-
si: accept optional single letter suffix:
1K = 1000, 1M = 1000000, …
-
iec: accept optional single letter suffix:
1K = 1024, 1M = 1048576, …
-
iec-i: accept optional two-letter suffix:
1Ki = 1024, 1Mi = 1048576, …
-
FIELDS supports cut(1) style field ranges:
N N’th field, counted from 1 N- from N’th field, to end of line N-M from N’th to M’th field (inclusive) -M from first to M’th field (inclusive)
- all fields
Multiple fields/ranges can be separated with commas
FORMAT must be suitable for printing one floating-point argument %f. Optional quote (%’f) will enable –grouping (if supported by current locale). Optional width value (%10f) will pad output. Optional zero (%010f) width will zero pad the number. Optional negative values (%-10f) will left align. Optional precision (%.1f) will override the input determined precision.
Examples
Convert 1.5K (SI Units) to 1500:
numfmt --from si 1.5K
Convert 1500 to 1.5K (SI Units):
numfmt --to si 1500
Convert 1.5K (IEC Units) to 1536:
numfmt --from iec 1.5K
Use appropriate conversion based on the suffix:
numfmt --from auto {{1.5Ki}}
Convert 5th field (1-indexed) to IEC Units without converting header:
ls -l | numfmt --header=1 --field 5 --to iec
Convert to IEC units, pad with 5 characters, left aligned:
du {{[-s|--summarize]}} * | numfmt --to iec --format "%-5f"
The examples are provided by the tldr-pages project under the CC BY 4.0 License.
Please note that, as uutils is a work in progress, some examples might fail.