【问题标题】:Count lines with awk, regardless of line ending style使用 awk 计算行数,无论行尾样式如何
【发布时间】:2012-11-07 12:18:15
【问题描述】:

用 awk 计算文件中行数的最佳方法是什么,不管行尾样式(DOS/Windows、UNIX 等)如何?

【问题讨论】:

  • GNU Awk 允许正则表达式作为记录分隔符。所以你可以做gawk 'END { print NR }' RS='\n\r|\n|\r\n'。但这是一个扩展。
  • 实际上 still 只报告我正在尝试的文件的一行。当我在 TextMate 中打开有问题的文件时,它的行号正确,所以我假设它没有损坏。
  • 但是,如果这对您来说很明显,请原谅,litb 的示例不包括 CR only 行结尾,但这似乎是您正在寻找的。
  • 爆炸!我不敢相信这没有发生在我身上。现在我觉得很笨。 @litb - 如果您将其作为答案发布,我会将其标记为已接受。

标签: awk


【解决方案1】:

在使用 awk 之前,先对文件执行 dos2unix 或 unix2dos。

【讨论】:

    【解决方案2】:

    您可以编写一个脚本来计算行数,并获得完美的结果。相同的脚本可在此处获得,Count No. of lines in UNIX which have data

    【讨论】:

      【解决方案3】:

      怎么样

      grep -c '^.*$' filename
      

      【讨论】:

      • 不——同样的事情。它为使用 CR-only 行尾样式的文件报告一行。
      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 2010-10-25
      相关资源
      最近更新 更多