我運行的是 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
進一步閱讀
- Windows CMD 命令列的 AZ 索引- 與 Windows cmd 行相關的所有內容的絕佳參考。
- 尋找- 在文件中搜尋文字字串並顯示找到它的所有行。
- Windows PowerShell 指令的 AZ 索引- PowerShell 相關所有內容的絕佳參考。
答案2
對我來說最快的是命令列:find /v /c "" foo.txt
我還沒有做一個適當的基準測試,但我嘗試type
在(get-content foo | measure-object -line)
2GB RAM 伺服器上測試 10GB 文件,但他們花了太長時間才能完成。尋找但返回得夠快