シェル芸で数字を単位付き(万億兆京垓)にして読みやすくする

個人的に、よく桁数が多い数字を読む際に、以下のような感じでprintfを使ってカンマ区切りにして読みやすくしている。

echo 1213141516171819 | printf "%'d\n" $(cat)
blacknon@BS-PUB-DEVELOP:~$ echo 1213141516171819 | printf "%'d\n" $(cat)
1,213,141,516,171,819
Sponsored Links

ただ、これでも桁数が多いと「日本語でなんだっけこの数字…?(´・ω・`)」となって読めない事が多々ある(1,000億くらいまでならパット見でいけるけど…)ので、シェル芸で数字に単位を付けて表示してみる。

echo 1213141516170819 | rev | sed -r -e's/[0-9]{4}/&,/g' -e's/,/'{万,億,兆,京,垓}'/1' | rev
echo 1213141516170819 | rev | sed -r -e's/[0-9]{4}/&,/g' -e's/,/'{万,億,兆,京,垓}'/1' -e's/0+([^0-9])/\1/g;s/([^0-9])([^0-9])/\2/g;s/[^0-9]$//g' -e's/([0-9]{3})([0-9])/\1,\2/g' | rev # キレイに整形する場合
blacknon@BS-PUB-DEVELOP:~$ # 多少読みにくくてもいい場合
blacknon@BS-PUB-DEVELOP:~$ echo 1213141516170819 | rev | sed -r -e's/[0-9]{4}/&,/g' -e's/,/'{万,億,兆,京,垓}'/1' | rev
京1213兆1415億1617万0819
blacknon@BS-PUB-DEVELOP:~$ # ちゃんと整形した場合
blacknon@BS-PUB-DEVELOP:~$ echo 1213141516170819 | rev | sed -r -e's/[0-9]{4}/&,/g' -e's/,/'{万,億,兆,京,垓}'/1' -e's/0+([^0-9])/\1/g;s/([^0-9])([^0-9])/\2/g;s/[^0-9]$//g' -e's/([0-9]{3})([0-9])/\1,\2/g' | rev # キレイに整形する場合
1,213兆1,415億1,617万819

 


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*