如何使用`sed`插入千位分隔符?

Sum*_*Tea 0 linux bash shell regex sed

我想用sed这个丑陋的 RE将千位分隔符插入到一个数字序列中sed -e :a -e 's/\(.*[0-9]\)\(\([0-9]\{3\}\)\(,[0-9]\{3\}\)*\(\.[0-9]*\)\)/\1,\2/;ta' [filename]

有没有更优雅的解决方案?

================================================== ==========

编辑

我刚才省略了一件事:数字可能有小数点。举个例子:

123456.7890

我想要分离 123,456.7890 后的结果

谢谢和最好的问候。

Sir*_*rex 5

它没有使用 sed,但您可以尝试类似的方法:

echo "10000" | xargs printf "%'d\n"

或者从这里使用 sed 的解决方案:

echo "2312341" | sed -r ':L;s=\b([0-9]+)([0-9]{3})\b=\1,\2=g;t L'