快速計數行數

快速計數行數

我運行的是 Windows 7 並且有 GnuWin32。我有一個幾 GB 的文字文件,\n其行結尾為 LF ( )。我想知道它有多少行(或有多少行 LF,也就是說,少一行,但我不在乎)。獲得答案最快或最便宜的方法是什麼?

一些可能性(儘管我確信我錯過了一些):

  • wc -l foo
  • grep -c $ foo(使用-c,僅列印匹配行的計數)
  • grep -c ^^ foo(第一個插入符號逃脫第二個插入符號)
  • sed -n $= foo-n防止列印行;$限製到最後一行;=列印行號)

(這些是 GnuWin32 實用程式。我不知道任何本機到 Windows 的方式。)

答案1

Windows 命令列解決方案

type foo | find "" /v /c

Powershell解決方案

(get-content foo | measure-object -line).lines

(dir foo | select-string .).count

(type foo).count

(gc foo | measure-object | select count).count

Perl解決方案

perl -pe '}{$_=$.' foo

awk解決方案

awk 'END { print NR }' foo

進一步閱讀

答案2

對我來說最快的是命令列:find /v /c "" foo.txt

我還沒有做一個適當的基準測試,但我嘗試type(get-content foo | measure-object -line)2GB RAM 伺服器上測試 10GB 文件,但他們花了太長時間才能完成。尋找但返回得夠快

相關內容