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

如何使用“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 后的结果

谢谢,并致以最诚挚的问候。

答案1

它没有使用 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'

相关内容