AWK脚本在某些文件中直到EOF才运行

时间:2014-04-03 09:57:15

标签: awk

我有以下代码,它应该在制表符分隔文件上做两件事。

  1. 计算整个文件的一个字段的总和
  2. 返回文件中的记录数
  3. 我面临两个问题:

    1. 对于某些文件,计算的总数似乎很好。但是在其他文件中,它似乎停在文件中间的某个记录处,并且不会继续向前直到文件结束。是否有任何特殊字符,AWK因为文件结尾而感到困惑。< / LI>
    2. 我得到零而不是任何文件的记录总数
    3. 有人可以指导我做错了什么。通过Windows 7中的.bat文件运行它

      BEGIN { FS="\t" }
        { sum[FILENAME] += $42 }
      END 
      {tr=NR}
      
      {
      for (i=1;i<ARGC;i++)
          printf "%s %15d %d\n",ARGV[i],sum[ARGV[i]],tr
      }
      

      由于

      罗斯

1 个答案:

答案 0 :(得分:0)

我认为你的END块应该是这样的:

END {
    tr=NR
    for (i=1;i<ARGC;i++)
        printf "%s %15d %d\n",ARGV[i],sum[ARGV[i]],tr
}