Chinaunix

标题: 数字加减求和问题 [打印本页]

作者: lenovo666    时间: 2009-07-19 08:52
标题: 数字加减求和问题
cat file1:
原金额:123976500.00

cat file2:
   收入                     付出
  10000.00                     500.00
     4000.00                   2000.00
3000000.00                    300.00
................                   ..............
................                  ................

利用 原金额+收入-付出 得出 file3
cat file3:
新金额:
作者: blackold    时间: 2009-07-19 08:59
awk
作者: ubuntuer    时间: 2009-07-19 09:40

  1.    awk 'NR==1{a=$2}NR>2{b=a+$1-$2;print b}' file1 file2
复制代码

作者: ubuntuer    时间: 2009-07-19 09:41
黑哥周末都起这早
作者: lenovo666    时间: 2009-07-19 10:13
原帖由 ubuntuer 于 2009-7-19 09:40 发表

   awk 'NR==1{a=$2}NR>2{b=a+$1-$2;print b}' file1 file2

对不起,我没说清楚,我的意思是 原金额+第一行的收入-第一行的付出=第一行金额。然后
第一行金额+第二行收入-第二行付出=第二行金额。
......................
......................


最后得出最后一行 一个金额。

或者:原金额+所有收入的和-所有付出的和=最后金额

谢谢

[ 本帖最后由 lenovo666 于 2009-7-19 10:25 编辑 ]
作者: blackold    时间: 2009-07-19 10:48
标题: 回复 #4 ubuntuer 的帖子
要养成好习惯啊。
作者: lenovo666    时间: 2009-07-19 11:38
标题: 回复 #6 blackold 的帖子
谢谢
作者: blackold    时间: 2009-07-19 11:44
try:
  1. awk 'NR==FNR{s=$2;next}{s=s+$1-$2}END{print s}' file1 file2
复制代码

作者: lenovo666    时间: 2009-07-19 12:10
原帖由 blackold 于 2009-7-19 11:44 发表
try:awk 'NR==FNR{s=$2;next}{s=s+$1-$2}END{print s}' file1 file2

谢谢,如何将小数点后两位也显示出来呢?
作者: blackold    时间: 2009-07-19 12:23
awk 'NR==FNR{s=$2;next}{s=s+$1-$2}END{printf("%.2f\n",s)}' file1 file2
作者: blackold    时间: 2009-07-19 12:41
或者设置OFMT变量。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2