シェルスクリプトで数値を3桁ごとにカンマ区切りで表示する(Number Format)
Contents
はじめに
桁数の多い数値を見やすくするために、3 桁ごとにカンマ区切りで表示することがあります。
昔の現場では「カンマ編集」と言われていました。
また、多くのプログラミング言語に組み込み関数として用意されています。
金額をページ内に表示するとき利用されますね。
ex) 1,234,567
シェルスクリプトで実現する方法について取り上げます。
検証環境
printf
コマンドを使う ( シェルがBash 5系
である場合 )
printf
コマンドを利用すれば OK。
シェルがBash 5系
以上である場合は、組み込みコマンドであるprintf
が利用できます。
数値を出力するためのフォーマットは%d
ですが、%
とd
の間に'
(シングルクォート)を挿入するとカンマ区切りで表示されます。
sed
コマンドを使う ( シェルがBash 5系
でない場合 )
Bash が利用できなかったり、バージョンが古い場合にはsed
で頑張ってみます。
簡単に解説すると、以下のような処理をsed
で行っています。
:
コマンドでl
という文字列でラベル付けする(goto 文のような機能)s
コマンドで置換するt
コマンドでl
ラベルまで移動する。- ※ただし
t
コマンドは直前のs
コマンドで置換が行われなかった場合は移動しない
- ※ただし
ひとこと
Bash5 系でしかつかえない便利機能、ちょいちょいありますね。
地味に便利な機能が多い。
ディスカッション
コメント一覧
まだ、コメントがありません