シェルスクリプトで数字3桁をカンマ区切りにする

bashなどのシェルスクリプトで数字を3桁のカンマ区切りにしようとすると結構めんどくさかったのでメモ。
printfの%dを%’d(シングルクォートを間に入れる)にするのはすぐに行き着くけど、それをawkで使おうとするとめちゃ厄介。シングルクォートの中にシングルクォートが入らないから。シングルクォートを\047でエスケープするのがみそ。

printf "%'d\n" "1000000"

or

awk '{printf"%\047d\n",$1}' <<< "1000000"
タイトルとURLをコピーしました