📅  最后修改于: 2023-12-03 15:33:13.882000             🧑  作者: Mango
Numfmt 是一个命令行工具,用于格式化数字。它可以将数字转换成人类可读的格式,并支持自定义输出格式。
Numfmt 可以在 Linux 和 macOS 上使用。在大多数 Linux 发行版中,Numfmt 是一个默认安装的标准工具,你不需要安装它。如果你使用的是 macOS 或其他系统,你可以通过 Homebrew 来安装它:
brew install numfmt
Numfmt 的基本语法如下:
numfmt [OPTION]... [FORMAT [NUMBER]...]
其中,OPTION
是一些可选参数,FORMAT
是输出格式,NUMBER
是要格式化的数字。如果省略了 NUMBER
参数,则默认从 stdin 中读取。
下面是一个例子:
$ numfmt --to=iec-i --suffix=B 1024 1048576 1073741824
1KiB 1MiB 1GiB
在这个例子中,我们使用 --to
参数指定输出格式为 iec-i(以 1024 为基数的国际单位)和 --suffix
参数指定输出单位为字节(B)。
Numfmt 支持多种输出格式,常见的格式如下:
human
:将数字转换成人类可读的格式,如 1.23k、3.45M、6.78G 等等。auto
:自动选择合适的格式,如 1.23k、3.45M、6.78G、23T 等等。iec-i
:使用以 1024 为基数的国际单位,如 1Ki、4Mi、10Gi 等等。si
:使用以 1000 为基数的国际单位,如 1k、4M、10G 等等。bin
:使用以 1024 为基数的二进制单位,如 1Ki、4Mi、10Gi 等等。你可以使用 --from
参数指定输入格式,使用 --to
参数指定输出格式。例如,要将一个以逗号分隔的数字串转换成 IEC I 格式,可以这样做:
$ echo "1,000,000,000" | numfmt --from=human --to=iec-i
953Mi
在上面的例子中,我们使用了 --from
参数指定输入格式为 human
,也就是人类可读的格式,并使用 --to
参数指定输出格式为 iec-i
。
Numfmt 还有一些其它的用法,比如支持对数值进行四舍五入、向上取整、向下取整、转换成百分比等等。你可以通过阅读它的文档来了解更多的使用方法。具体请参考 man numfmt
或 GNU Coreutils Manual。