Unix/Linux:Bash数字货币格式格式化千位分组分隔符
时间:2020-01-09 10:45:54 来源:igfitidea点击:
我有一个存储在名为x = 240570.578的shell变量中的数字。
如何将$x打印为2,40,570.57。
如何在bash shell脚本下用其货币格式替换数字?
echo语句不能用于在bash/ksh shell下格式化数字。
您需要使用printf命令根据FORMAT格式化和打印数据。
语法
语法为:
printf"%"。 2f" var
或者
printf"%"。 2d" var
或者
printf" Total Rs。 %'。 2f" var
或者
printf" Total $。 %'。 2f" var
`'用作字段并用作十进制转换的打印修饰符,根据当前的LC_NUMERIC,千位分隔符应用于输出的整数部分。
运行语言环境程序以检查LC_NUMERIC的当前设置:
locale
输出示例:
LANG=en_IN LANGUAGE=en_IN:en LC_CTYPE="en_IN" LC_NUMERIC="en_IN" LC_TIME="en_IN" LC_COLLATE="en_IN" LC_MONETARY="en_IN" LC_MESSAGES="en_IN" LC_PAPER="en_IN" LC_NAME="en_IN" LC_ADDRESS="en_IN" LC_TELEPHONE="en_IN" LC_MEASUREMENT="en_IN" LC_IDENTIFICATION="en_IN" LC_ALL=
我在bash中如下设置LC_ALL和LANG。
您需要在~/.bashrc和/或者~/.profile文件中放入以下行:
export LC_ALL=en_IN.UTF-8 export LANG=en_IN.UTF-8 export LANGUAGE=en_IN.UTF-8
例子
执行以下命令:
x="240570.578" printf "%'.2f\n" $x printf "Total $%'.2f\n" $x printf "Total INR.%'.2f\n" $x
输出示例:
2,40,570.58 Total ,40,570.58 Total INR.2,40,570.58