免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 18340 | 回复: 12
打印 上一主题 下一主题

金额三位用逗号分隔怎么做? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-11 09:41 |只看该作者 |倒序浏览
求教,想不出办法来

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2006-10-11 09:59 |只看该作者
echo 12345678|sed ':a;s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'
有空请搜读 sed1line

论坛徽章:
0
3 [报告]
发表于 2006-10-11 12:06 |只看该作者
LC_NUMERIC ?

论坛徽章:
0
4 [报告]
发表于 2006-10-11 17:58 |只看该作者

太复杂了,看不懂

SCO5.07,运行不过:sed: Label too long:

论坛徽章:
0
5 [报告]
发表于 2006-10-11 21:05 |只看该作者
有 bash 嗎,有可以這樣
[victor@localhost ~]$ echo $SHELL
/bin/bash
[victor@localhost ~]$ aaa='12345678'
[victor@localhost ~]$ echo "${aaa:0:3},${aaa:3:3},${aaa:6}"
123,456,78
[victor@localhost ~]$

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2006-10-12 08:50 |只看该作者
原帖由 twf_cc 于 2006-10-11 21:05 发表
有 bash 嗎,有可以這樣
[victor@localhost ~]$ echo $SHELL
/bin/bash
[victor@localhost ~]$ aaa='12345678'
[victor@localhost ~]$ echo "${aaa:0:3},${aaa:3:3},${aaa:6}"
123,456,78
[victo ...

兄弟这样也行?应该是从个位开始向高位方向,每三位加逗号。可以改改再用。^_^
另外$CO上应该没有bash。

如果有perl的话,可以搜索一下我以前的写的一行perl,关键字就用“牛与非牛吧”。^_^
------------------------------------------------
附注:上面这句实际上是对楼主说的。^_^waker的sed也不错,;楼主随便用一个就行了。^_^

[ 本帖最后由 woodie 于 2006-10-16 09:16 编辑 ]

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2006-10-12 09:00 |只看该作者
原帖由 xiaocaicai 于 2006-10-11 17:58 发表
SCO5.07,运行不过:sed: Label too long:

sed -e ':a' -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'
试试

论坛徽章:
0
8 [报告]
发表于 2006-10-12 10:50 |只看该作者

sed -e ':a' -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'

天啦!太神奇了,完全正确。
':a' 和ta是什么意思呢,老大能说说吗。

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2006-10-12 10:59 |只看该作者
不能,自己去新手导航或基础12篇看

论坛徽章:
0
10 [报告]
发表于 2006-10-15 10:47 |只看该作者
原帖由 woodie 于 2006-10-12 08:50 发表

兄弟这样也行?应该是从个位开始向高位方向,每三位加逗号。可以改改再用。^_^
另外$CO上应该没有bash。
如果有perl的话,可以搜索一下我以前的写的一行perl,关键字就用“牛与非牛吧”。^_^



BASH 可以了,不用 perl 吧
#! /bin/bash
# add_comma

for input
  do
    length=${#input}
     [ -n "$input" ] || exit 2
     case "$length" in
        1|2|3) pat="$input" ;;
            4) pat="${input:0:1},${input:1}" ;;
            5) pat="${input:0:2},${input:2}" ;;
            6) pat="${input:0:3},${input:3}" ;;
        7|8|9) pat="${input:0:3},${input:3:3},${input:6}" ;;
     10|11|12) pat="${input:0:3},${input:3:3},${input:6:3},${input:9}" ;;
      esac
  echo $pat
done
[victor@localhost ~]$ ./addcomma.sh 123 45678 9876543
123
45,678
987,654,3
[victor@localhost ~]$ ./addcomma.sh 123 45678 9876543 1111111
123
45,678
987,654,3
111,111,1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP