用shell如何格式化输出实数?

用shell如何格式化输出实数?

我想把计算的结果按格式输出到文本文件中,用bc或者printf应该怎么设置格式?我试了了一下都没成功,请高人指点:

比如想把 133.1234 输出为4位整数,3位小数,应该怎么办?

还有如何控制指数的输出格式?

-2.73e-01
-2.73e-001
-2.78e-018





      
133.1234 输出为 4 位整数 3 位小数? 不理解

你想如何控制指数的输出格式?      
建议你还是看看printf函数的格式说明吧,shell下的 printf也是一样的      
可能是输出7位,4位整数3位小数吧      
我的意思是输入为123.1236,想输出为0123.124.
输入数据有好多行,但是长度不一样,例如:
123.3234
2334.34567
12.032
输出的格式怎么能变成下面的格式
0123.323
2334.346
0012.032

还有shell里面如何控制指数的输出格式?
-2.73e-001
怎么控制e前面和e后面的数值所占的位数?


谢谢你们的帮助!!

      
。。。

收到了有个回复这个主题的邮件
我还兴奋了一下呢      
FYI:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0] ; printf '%08.3f\n%08.3f\n%08.3f\n' 123.3234 2334.34567 12.032
0123.323
2334.346
0012.032
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0] ; bye
      
俺觉得没有办法控制科学计数法格式中 E 前后的位数       
先谢了,我再琢磨一下