numfmt - 数値の整形を行う

スポンサーリンク

numfmtコマンドは数値をKやMをつけた数値に変換、またはその逆でKやM等のついた数値を単純な数値に変換することができます。

numfmtコマンドはオプションを指定し利用します。例えば、変換する数値の箇所はcutコマンドのようにフィールドを指定して、数値を変換するようにオプションで指定します。また、'auto'、'si'、'iec'、'iec-i'等のオプションで数値の変換方法を指定し利用します。

スポンサーリンク

numfmtコマンドの利用例

単純な数値を単位のある数値に変換
(--toオプション)

--toオプションは単純な数値を単位のある数値に変換できます。

--toオプションで指定できる変換方法は以下の表になります。

--toオプションの変換の指定方法

変換方法 説明
none スケーリングを行わない(デフォルト)
si 1000のべき乗ごとにKやMの単位でオートスケールを行う
iec 1024のべき乗ごとでKやMの単位でオートスケールを行う
iec-i 1024のべき乗ごとでKiやMiの単位でオートスケールを行う

 

コマンド例と実行結果

 

 

 

単位のある数値を単純な数値に変換
(--fromオプション)

--fromオプションはKやM等の接尾辞がある数値を解釈して、単純な数値として表示できます。

--fromオプションでどのような接尾辞を受け入れるかを指定できます。
指定できる変換方法は以下の表になります。

--fromオプションの変換の指定方法

変換方法 説明
none 入力に接尾辞を受け付けない
si KやMの単位を1000のべき乗として単純な数値に変換
iec KやMの単位を1024のべき乗として単純な数値に変換
iec-i KiやMiの単位を1024のべき乗として単純な数値に変換
auto KやMの単位は1000のべき乗として、
KiやMiの単位は1024のべき乗として、単純な数値に変換

 

コマンド例と実行結果

 

--fromオプションと--toオプションを同時に用いることで、単位のスケールを変換することができます。

コマンド例

実行結果

 

 

 

標準入力から入力を受け付ける

引数に数値がない場合は、入力を標準入力から受け付けます。

ファイルから入力を受け付ける場合に利用できます。

コマンド例

実行結果

 

 

 

フォーマット文字列で出力する行を指定
(--formatオプション)

--formatオプションは、出力する行をフォーマット文字列で指定することができます。

numfmtコマンドの受け付けた数値は'%f'で指定し、フォーマット文字列の中で一度だけ使用できます。

コマンド例と実行結果

 

 

 

桁区切りを行う
(--groupingオプション)

--groupingオプションは数値を出力するときにロケールに合う桁区切りを行います。ロケールがCの場合は、影響はなく、桁区切りは行われません。

コマンド例では環境変数を削除するためにenvコマンドを通して、numfmtコマンドを実行しています。

コマンド例と実行結果

 

env - 環境変数を一時的に修正してコマンドを実行する
envコマンドは、別のコマンドを引数に取ります。その別のコマンドに対して、envコマンドで一時的に修正した環境変数を用いてコマンドを実行します。envコマンドでコマンドを引数に取らない場合は環境変数を表示することができます。また、envコマ...

 

 

 

入力のユニットサイズを変更
(--from-unitオプション)

--from-unitオプションは入力される数値のユニットサイズ(デフォルト:1)を変更できます。

コマンド例と実行結果

 

 

 

出力のユニットサイズの変更
(--to-unitオプション)

--from-unitオプションは出力される数値のユニットサイズ(デフォルト:1)を変更できます。

コマンド例と実行結果

 

 

 

数値の丸め方を変更
(--roundオプション)

--roundオプションは数値の丸め方を変更できます。指定できる方法は5つあります。

'from-zero':ゼロから離れるように丸める(round away from zero)
'towards-zero':ゼロへ向かうように丸める(round towards zero)
'up':切り上げ(正の無限大へ向かうように丸める)
'down':切り捨て(負の無限大へ向かうように丸める)
'nearest':四捨五入

コマンド例と実行結果

 

正の数値に対して、'up'と'from-zero'は同じ丸め方になります。また、同様に正の数値に対して、'down'と'towards-zero'も同じ丸め方になります。

 

 

 

接尾辞を追加
(--suffixオプション)

--suffixオプションは接尾辞を追加で指定することが出来ます。

コマンド例

実行結果

 

 

 

出力のパディング
(--paddingオプション)

--paddingオプションは出力の数値に対して右寄せ又は左寄せの調整を行うことが出来ます。

これはフォーマットでの出力'%10f'や'%-10f'と同じ意味になります。

コマンド例と実行結果

 

 

 

変換する数値のフィールドを指定
(--fieldオプション)

--fieldオプションは、cutコマンドのように変換する数値のフィールドを指定することが出来ます。

デフォルトは1で、区切り文字は空白文字になります。

コマンド例と実行結果

 

 

 

フィールドの区切り文字を指定
(-dオプション)

-dオプションは、指定するフィールドの区切り文字を変更できます。区切り文字のデフォルトは空白文字になります。

コマンド例と実行結果

 

 

 

ヘッダー行に対して数値変換をしない
(--headerオプション)

--headerオプションはヘッダー行に対して、numfmtコマンドでの数値変換を行いません。

--headerオプションの数値を省略した場合は、1が指定されます。

file.txt

コマンド例と実行結果

 

 

 

参考

GNU Coreutils: numfmt invocation