Conte linhas rapidamente

Conte linhas rapidamente

Estou executando o Windows 7 e tenho o GnuWin32. Eu tenho um arquivo de texto de vários gigabytes com \nfinais de linha LF (). Quero saber quantas linhas ele possui (ou alternativamente quantos LFs ele possui, o que é, digamos, um a menos, mas não me importa). Qual é a maneira mais rápida ou menos dispendiosa de obter minha resposta?

Algumas possibilidades (embora eu tenha certeza de que estou perdendo algumas):

  • wc -l foo
  • grep -c $ foo(com -c, imprime apenas a contagem de linhas correspondentes)
  • grep -c ^^ foo(o primeiro cursor escapa do segundo)
  • sed -n $= foo( -nimpede a impressão da linha; $restringe à última linha; =imprime o número da linha)

(Esses são os utilitários GnuWin32. Não conheço nenhuma maneira nativa do Windows.)

Responder1

Solução de linha de comando do Windows

type foo | find "" /v /c

Soluções Powershell

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

(dir foo | select-string .).count

(type foo).count

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

solução perl

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

solução errada

awk 'END { print NR }' foo

Leitura adicional

Responder2

O mais rápido para mim é a linha de comando:find /v /c "" foo.txt

Ainda estou para fazer um benchmark adequado, mas tentei typeum (get-content foo | measure-object -line)arquivo de 10 GB em um servidor de 2 GB de RAM, mas eles demoraram muito para serem concluídos. Encontre, no entanto, retornado rápido o suficiente

informação relacionada