如何将数值添标上逗号 (1234567 ---> 1,234,567)

如何将数值添标上逗号 (1234567 ---> 1,234,567)

复制内容到剪贴板
代码:
$ echo 1234567 | sed -e ':again; s/\([0-9]\)\([0-9][0-9][0-9]\)\(,\|$\)/\1,\2/; tagain'
1,234,567
引用:
dearvoid:

只有 s 成功之后 t 才会起作用
就是一个循环: 1234567 ---> 1234,567 ---> 1,234,567
sed很强大,也就难读懂

      
PCRE(Perl兼容正则)里, 有个叫零宽段言的东西, 只匹配一个位置, 而不实际占一个位置, 正如 ^, $ 只匹配行头和行尾
利用这个, 可以插入我们所需要的逗号
复制内容到剪贴板
代码:
seq -s  "" 1 9 | perl -pe 's/(?<=\d)(?=(\d\d\d)+$)/,/g'
123,456,789
      
perl 这个用的不错. perl 的 RE 支持无疑是最强的