日期:2014-05-16  浏览次数:20666 次

Linux文件内容替换
问题是这样的
文件中有大量类似 1.23E+05表示的数据,我希望通过一个shell脚本,把所有这样表示的数据替换成正常的数字(比如1.23E+05替换成123000)。
求大神指点,给个思路也好啊,谢谢了!
linux shell 脚本

------解决方案--------------------
思路:grep根据正则表达式找到数据,然后根据科学技术法的转换方式进行转换即可。
------解决方案--------------------
文件 1.txt

1.23E+05
1.23E+05
1.23E+05
1.23E+05
1.23E+06
1.23E+07
1.23E+08
1.23E+10



cat 1.txt  
------解决方案--------------------
 sed -e 's/E+/ * 10 ^ /' 
------解决方案--------------------
 bc


结果

123000.00
123000.00
123000.00
123000.00
1230000.00
12300000.00
123000000.00
12300000000.00


另外
http://bbs.chinaunix.net/thread-4065026-1-1.html
http://blog.csdn.net/crazyhacking/article/details/8639436
------解决方案--------------------
awk '{printf("%2f\n",$0)}' urfile

awk '{printf("%.2f\n",$0)}' urfile