📜  numfmt (1)

📅  最后修改于: 2023-12-03 15:33:13.882000             🧑  作者: Mango

Numfmt – 格式化数字的命令行工具

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 numfmtGNU Coreutils Manual