约 8004 字

约 40 分钟

#Bash 的 numfmt 命令

numfmt [OPTION]... [NUMBER]...

功能

数值和字符串之间的转换。

类型

可执行文件(/usr/bin/numfmt),属于 coreutils。

参数

  • OPTION 选项:
    • --debug - 对无效输入打印警告
    • -d, --delimiter=X - 使用 X 代替空格作为分隔符
    • --field=FIELDS - 替换 FIELDS 指定的 字段(默认为 1)中的数字
    • --format=FORMAT - 使用 printf 风格的浮点数格式
    • --from=UNIT - 指定输入的 单位格式 为 UNIT
    • --from-unit=N - 指定输入的单位大小为 N;使用此选项但不指定 N 时默认为 1
    • --grouping - 使用区域定义的数值分组;例如 1,000,000
    • --header[=N] - 开头 N 行直接打印,不转换;默认为 1
    • --invalid=MODE - 无效数值的处理模式:
      • abort - 中断(默认)
      • fail - 失败
      • warn - 警告
      • ignore - 忽略
    • --padding=N - 将输出对齐到 N 个字符
    • --round=METHOD - 舍入方式:
      • up - 向上取整
      • down - 向下取整
      • from-zero - 从零远离(默认)
      • towards-zero - 向零靠拢
      • nearest - 最近整数
    • --suffix=SUFFIX - 给输出添加后缀 SUFFIX
    • --to=UNIT - 指定输出的 单位格式 为 UNIT
    • --to-unit=N - 指定输入的单位大小为 N;默认为 1
    • -z, --zero-terminated - 以空字符(\0)作为行的结尾,而不是换行符(\n)
    • --ignore=N - 忽略 N 个逻辑核心
    • --help - 显示帮助
    • --version - 显示版本
  • NUMBER - 要转换的数值

#单位格式

单位格式说明
none没有单位,后缀会产生错误
auto1K = 1000, 1Ki = 1024
si1K = 1000
iec1K = 1024
iec-i1Ki = 1024

#字段

字段说明
N第 N 个字段
N-第 N 个字段到末尾
N-M第 N 个字段到第 M 个字段
-M从开始到第 M 个字段
-所有字段
  • 字段的开始序号是 1

#示例

$ numfmt --to=si 100000000
100M
$ numfmt --to=iec 100000000
96M
$ numfmt --from=si 32G
32000000000
$ $ numfmt --from=si 32G
32000000000
$ numfmt --to=iec --from=si 1T      # 1T 硬盘的实际容量
932G

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/11/20