printf、awk ...何千もの空白で数字をフォーマットする方法

printf、awk ...何千もの空白で数字をフォーマットする方法

printf、awk、sedを使用して、非常に大きな数字を千分の1単位で区切る簡単な方法はありますか?

したがって、10000000000000は10 000 000 000 000になります。

ありがとう

ベストアンサー1

いくつかprintfの実装(GNUprintfおよびGNUシステムにprintf組み込まれている、およびksh93(含まれていない)を含む)の場合、システムにフランス語(少なくともフランス語またはカナダ)、スウェーデン語、スロベニア語、マケドニア語、またはキルギス語のロケールがあるとしますzsh(そして千単位の区切り記号でスペースを持ついくつかの項目があります。bashlkshdashyash

$ LC_ALL=fr_FR locale -k thousands_sep
thousands_sep=" "
$ LC_ALL=fr_FR printf "%'d\n" 10000000000
10 000 000 000

awk一部の実装でも機能します。

$ LC_ALL=fr_FR awk 'BEGIN{printf "%'\''d\n", 1e10}'
10 000 000 000

設定されていない場合は、LC_NUMERIC代わりに使用できます。LC_ALLLC_ALL

おすすめ記事