@kyanny's blog

My thoughts, my life. Views/opinions are my own.

TIL: numfmt(1)

numfmt(1) — coreutils — Debian testing — Debian Manpages

5.1G みたいな human-readable な単位付きの数と単位なしの数値を変換する。coreutils に含まれているので macOS でも brew install coreutils でインストールできる。

❯ echo 5.1G | numfmt --from=iec
5476083303

ついでにもう一つ TIL: Bash で「直前のコマンドの標準出力」を参照する方法はないが、$(!!) で「直前のコマンドを再実行した結果」を得ることができる(!! で直前のコマンドを実行する)。ので、以下のように書ける。

❯ echo $(!!) | numfmt --to=iec
echo $(echo 5.1G | numfmt --from=iec) | numfmt --to=iec
5.2G

5.1G が 5.2G になっちゃうのは浮動小数点数の何かが関係してそう。