我有一个数字存储在名为 x=”240570.578” 的 shell 变量中。我想将 $x 打印为 2,40,570.57。如何在 bash shell 脚本下用货币格式替换数字?
echo 语句不能用于在 bash/ksh shell 下格式化数字。您需要使用 printf 命令根据 FORMAT 格式化并打印数据。
句法
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | 打印函数 |
美东时间。阅读时间 | 1分钟 |
语法是:
printf "%'.2f" var
或者
printf "%'.2d" var
或者
printf "Total Rs.%'.2f" var
或者
printf "Total $.%'.2f" var
作为'十进制转换的字段和打印修饰符,千位分组分隔符根据当前 LC_NUMERIC 应用到输出的整数部分。运行区域设置程序以检查 LC_NUMERIC 的当前设置:
语言环境
输出示例:
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="zh_cn" LC_IDENTIFICATION="en_IN" LC_ALL=
我在 bash 中设置了 LC_ALL 和 LANG,如下所示。您需要将以下行放入 ~/.bashrc 和/或 ~/.profile 文件中:
导出 LC_ALL =en_IN.UTF- 8 导出 LANG =en_IN.UTF- 8 导出 LANGUAGE =en_IN.UTF- 8
例子
键入以下命令:
x = "240570.578" printf "%'.2f n " $x printf "总计 $%'.2f n " $x printf "总计 INR.%'.2f n " $x
输出示例:
2,40,570.58 总计 $2,40,570.58 总计 INR.2,40,570.58
推荐读物
man printf
man 3 printf
man local