はじめに
桁数の多い数値を見やすくするために、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 系でしかつかえない便利機能、ちょいちょいありますね。 地味に便利な機能が多い。