私はWindows7を実行していて、GnuWin32を持っています。 LF(\n
)行末の数ギガバイトのテキストファイルがあります。行数(またはLF数)を知りたいのですが、たとえば、1つ少なくなりますが、私は気にしません)。私の答えを得るのに最も速いまたは最も安価な方法は何ですか?
いくつかの可能性(私はいくつかが欠けていると確信していますが):
wc -l foo
grep -c $ foo
(-c
を指定すると、一致する行の数のみが出力されます)grep -c ^^ foo
(最初のキャレットは2番目のキャレットをエスケープします)sed -n $= foo
(-n
は行の印刷を防ぎます; $
は最後の行に制限します; =
は行番号を印刷します)(これらはGnuWin32ユーティリティです。Windowsへのネイティブな方法はわかりません。)
type foo | find "" /v /c
(get-content foo | measure-object -line).lines
(dir foo | select-string .).count
(type foo).count
(gc foo | measure-object | select count).count
Perl -pe '}{$_=$.' foo
awk 'END { print NR }' foo
私にとって最速はコマンドラインです:find /v /c "" foo.txt
私はまだ適切なベンチマークを行っていませんが、2GBのRAMサーバーで10GBのファイルに対してtype
と(get-content foo | measure-object -line)
を試しましたが、完了するのに時間がかかりすぎました。ただし、十分な速さで返される