Contar líneas rápidamente

Contar líneas rápidamente

Estoy ejecutando Windows 7 y tengo GnuWin32. Tengo un archivo de texto de varios gigabytes con \nfinales de línea LF (). Quiero saber cuántas líneas tiene (o, alternativamente, cuántos LF tiene, que es, digamos, una menos, pero no me importa). ¿Cuál es la forma más rápida o menos costosa de obtener mi respuesta?

Algunas posibilidades (aunque estoy seguro de que me faltan algunas):

  • wc -l foo
  • grep -c $ foo(con -c, imprime solo el recuento de líneas coincidentes)
  • grep -c ^^ foo(el primer signo de intercalación escapa al segundo)
  • sed -n $= foo( -nevita imprimir la línea; $restringe a la última línea; =imprime el número de línea)

(Esas son las utilidades GnuWin32. No conozco ninguna forma nativa de Windows).

Respuesta1

Solución de línea de comando de Windows

type foo | find "" /v /c

Soluciones PowerShell

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

(dir foo | select-string .).count

(type foo).count

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

solución perla

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

solución incorrecta

awk 'END { print NR }' foo

Otras lecturas

Respuesta2

La más rápida para mí es la línea de comando:find /v /c "" foo.txt

Todavía tengo que hacer una prueba comparativa adecuada, pero lo intenté typecon (get-content foo | measure-object -line)un archivo de 10 GB en un servidor de RAM de 2 GB, pero tardaron demasiado en completarse. Encontrar sin embargo regresó lo suficientemente rápido

información relacionada