带有初学者示例的 Numfmt 命令教程

数吨 命令将数字转换为人类可读格式。 它读取各种表示形式的数字,并根据指定的选项以人类可读的格式重新格式化它们。 如果没有给出数字,它会从标准输入中读取数字。 它是 GNU coreutils 包的一部分,所以不要费心安装它。 在这个简短的教程中,让我们通过一些实际示例来看看 Numfmt 命令的用法。

带有示例的 Numfmt 命令教程

想象一个复数,例如 ‘1003040500’. 当然,数学忍者可以在几秒钟内轻松找到这个数字的人类可读表示。 但这对我来说有点难。 这是 Numfmt 命令提供帮助的地方。 运行以下命令以将给定的内容转换为人类可读的形式。

$ numfmt --to=si 1003040500 1.1G

让我们寻找一些比前一个数字更长且更复杂的数字。 “10090008000700060005”怎么样? 有点难,对吧? 是的。 但是 Numfmt 命令会立即显示这个数字的人类可读格式。

$ numfmt --to=si 10090008000700060005 11E

这里, 指的是 国际单位制 (缩写 SI 从 国际系统 ,名称的法语版本)。

所以,如果你使用 , numfmt 命令将根据国际单位制 (SI) 标准自动缩放数字。

Numfmt 也使用以下单位选项。

  • 国际电联ie-i – 根据国际电工委员会 (IEC) 标准自动缩放数字。
  • 汽车 – 使用这种方法,带有’K’、’M’、’G’、’T’、’P’、’E’、’Z’、’Y’后缀的数字被解释为 值,以及带有 ‘Ki’、’Mi’、’Gi’、’Ti’、’Pi’、’Ei’、’Zi’、’Yi’ 后缀的数字被解释为 国际电工委员会 价值观。
  • 没有任何 – 没有自动缩放。

以下是上述选项的更多示例。

$ numfmt --to=iec 10090008000700060005 8.8E
$ numfmt --to=iec-i 10090008000700060005 8.8Ei

我们已经看到了如何将数字转换为人类可读的格式。 现在让我们做相反的事情。 即我们将从人类可读格式转换数字。 只需将“–to”替换为“–from”选项,如下所示。

$ numfmt --from=si 1G 1000000000
$ numfmt --from=si 1M 1000000
$ numfmt --from=si 1P 1000000000000000

我们也可以这样做 国际电联ie-i 标准。

$ numfmt --from=iec 1G 1073741824
$ numfmt --from=iec-i 1Gi 1073741824
$ numfmt --from=auto 1G 1000000000
$ numfmt --from=auto 1Gi 1073741824

就像我已经提到的,当使用“auto”时,带有’K’,’M’,’G’,’T’,’P’,’E’,’Z’,’Y’后缀的数字被解释为 值,以及带有 ‘Ki’、’Mi’、’Gi’、’Ti’、’Pi’、’Ei’、’Zi’、’Yi’ 后缀的数字被解释为 国际电工委员会 价值观。

Numfmt 命令也可以与其他命令结合使用。 看看下面的例子。

$ echo 1G | numfmt --from=si 1000000000
$ echo 1G | numfmt --from=iec 1073741824
$ df -B1 | numfmt --header --field 2-4 --to=si
$ ls -l | numfmt --header --field 5 --to=si

请注意, lsdf 命令已经有“–human-readable”选项以人类可读的形式显示输出。 以上示例仅用于演示目的。

您也可以使用“–format”或“–padding”选项调整输出。

填充到 5 个字符,使用 ‘–format’ 选项右对齐:

$ du -s * | numfmt --to=si --format="%5f"

填充到 5 个字符,使用 ‘–format’ 选项左对齐:

$ du -s * | numfmt --to=si --format="%-5f"

填充到 5 个字符,使用 ‘–padding’ 选项右对齐:

$ du -s * | numfmt --to=si --padding=5

填充到 5 个字符,使用 ‘–padding’ 选项左对齐:

$ du -s * | numfmt --to=si --padding=-5

有关更多选项和用法,请参阅手册页。

$ man numfmt

资源:

  • numfmt 手册

将数字转换为人类可读的格式LinuxLinux 命令numfmt