代码之家  ›  专栏  ›  技术社区  ›  Sharat Chandra

每N行之和;awk

  •  2
  • Sharat Chandra  · 技术社区  · 16 年前

    我有一个包含单列数据的文件。我必须找到每4行的和,然后打印出和 也就是说,我必须计算从第4行到第7行的0-3行和、第8行到第11行的和等等的值之和……

    2 回复  |  直到 16 年前
        1
  •  5
  •   ghostdog74    16 年前
    awk '{s+=$1}NR%4==0{print s;s=0}' file
    

    如果你的文件还保留着

    $ cat file
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    $ awk '{s+=$1}NR%4==0{print s;t+=s;s=0}END{print "total: ",t;if(s) print "left: " s}' file
    10
    26
    total:  36
    left: 19
    
        2
  •  1
  •   Dennis Williamson    16 年前
    $ cat file
    1
    2
    3
    4
    5
    6
    7
    8
    $ awk '{subtotal+=$1} NR % 4 == 0 { print "subtotal", subtotal; total+=subtotal; subtotal=0} END {print "TOTAL", total}' file
    subtotal 10
    subtotal 26
    TOTAL 36