¿Cuál es el equivalente de Windows de "wc -l"?

53

¿Cuál es el equivalente de Windows del comando Linux / Unix wc -l?

Básicamente, ¿cómo cuenta el número de líneas de salida de un comando en la línea de comandos de Windows?

Niall
fuente
También podría usar las herramientas GnuWin32 y tener wc(bueno, wc.exe...) gnuwin32.sourceforge.net
ivanivan

Respuestas:

66

El comando Linux / Unix "line count" wc -l, tiene un equivalente de Windows de find /c /v "".

¿Como funciona esto?

Según Raymond Chen de The Old New Thing , esto funciona como tal desde

Una peculiaridad especial del findcomando es que la cadena nula se trata como si nunca coincidiera.

La cuenta invertida ( /v) ( /c) cuenta efectivamente todas las líneas; por lo tanto, el recuento de líneas.

Ejemplo de uso

Para contar el número de archivos modificados en una copia de trabajo de subversión:

svn status -q | find /c /v ""

Tal comando se puede usar para marcar una compilación como "sucia" si el recuento no es 0, es decir, hay cambios no confirmados en la copia de trabajo.

Para obtener un recuento de líneas de todos sus archivos Java:

(for /r %f in (*.java) do @type "%f") | find /c /v ""

El comando find /c /v ""también se puede agregar a un archivo por lotes si es necesario. Recuerde duplicar los %caracteres en archivos por lotes.


Potencia Shell

Un equivalente de PowerShell que funcione es Measure-Object -linecon algún formato adicional requerido, por ejemplo, (listado de directorios por simplicidad),

(ls | Measure-Object -line).Lines
Niall
fuente
1
Gracias por compartir. Creó una esencia para referencia - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare
11

En PowerShell, para obtener un recuento de líneas de todos sus archivos java:

type *.java | Measure-Object -line
usuario3808394
fuente
3
bienvenido al superusuario: - la pregunta era sobre CMD no PowerShell, si puede responder el OP, edite su respuesta. esto puede ayudar Cómo responder , Cómo preguntar , centro de ayuda nuevamente bienvenido a superuer y espero que regrese, gracias
mic84
99
Gracias @ mic84. La pregunta es sobre la línea de comandos de Windows. Y Microsoft está tratando de reemplazar CMD con PowerShell: networkworld.com/article/3143196/windows/… Así que esta es una respuesta bastante útil.
user3808394
-2

Findstr / n / r.

Esta es una expresión regular limitada, por lo que / n muestra el número de línea de la coincidencia y "." es coincidir con cualquier char.

Gary Gatten
fuente
2
La pregunta no es cómo mostrar el archivo con números de línea; La pregunta es cómo determinar el número de líneas en el archivo.
Scott
Mira el número de la última línea, y así es cuántas líneas hay en el archivo. El comando "find" también funciona, pero quizás findtr sea útil en algunos casos. Lo he encontrado para ser.
Gary Gatten
Esa no es una respuesta fácil de usar, especialmente dado que hemos recibido un par de otras respuestas que son más directas. Pero, si esa es su respuesta,  edítela  para que sea más clara y completa.
Scott