【问题标题】:Sum number in two different files两个不同文件中的总和
【发布时间】:2013-04-13 09:26:19
【问题描述】:

我有两个相同长度的文件,例如:

0.99952 0.01
0.98927 0.02
0.98242 0.03

-0.758 0.01
-0.745 0.02
-0.742 0.03

我想对第一列的编号求和,然后将其打印到一个新文件中,第二列旁边有相同的元素。输出应该是:

0.24152 0.01
0,24427 0.02
0,24042 0.03

我试过了

 paste file1 file2 | awk '{print ($1 + $2), $4}' > sum

但输出是:

 1.00952 0.01
 1.00927 0.02
 1.01242 0.03

【问题讨论】:

    标签: bash shell awk


    【解决方案1】:

    你在 awk 中使用了无效的参数号($2 而不是 $3)

    $1      $2      $3     $4
    0.99952 0.01    -0.758 0.01
    0.98927 0.02    -0.745 0.02
    0.98242 0.03    -0.742 0.03
    

    有一个工作示例:

    paste data1 data2 | awk '{print ($1 + $3), $4}'
    

    【讨论】:

      【解决方案2】:

      单一的awk 方法:

      $ awk 'NR==FNR{a[NR]=$1;next}{print $1+a[FNR],$2}' file1 file2
      0.24152 0.01
      0.24427 0.02
      0.24042 0.03
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-15
        相关资源
        最近更新 更多