¿Conoces un programa similar para wc (comando de conteo de palabras de unix) en Windows? [cerrado]

StackOverflow https://stackoverflow.com/questions/247234

  •  05-07-2019
  •  | 
  •  

Pregunta

Una búsqueda rápida me da tawbaware wc , pero no acepta stdout como flujo de entrada, lo que significa que no puedo usar pipe dentro de una sesión de DOS .

Nota:

No puedo instalar cygwin o usar powershell (lo que hubiera permitido un ' | foreach-object {(get-content $ _). count} ')

unxutils y y gnuwin32 Los paquetes pueden tener esta característica ...

¿Fue útil?

Solución

Puedes usar el " wc " ;, creado para Windows: es parte de coreutils paquete. Obtenga el exe coreutils más reciente .

Otros consejos

Aún más fácil, find / c . ej .:

netstat -an | find /c "ESTABLISHED"
  

find / c : muestra solo el recuento de líneas que contienen la cadena.

Para las herramientas de Unix en Windows, sus opciones son:

msys - de similair a unixtools, originalmente solo algunas herramientas de compilación necesarias para ir con mingw (versión nativa de gcc), ahora tiene casi todas las herramientas de cygwin

cygwin - casi todos los elementos para unix, instalación compleja y requiere un dll para proporcionar un api de unix. Pueden surgir problemas al mezclar herramientas creadas con diferentes versiones de cygwin.dll

Unixtools : no todas las herramientas proporcionadas por cygwin pero compiladas de forma nativa

ch : casi todas las herramientas de Unix, compiladas de forma nativa. Y una concha que incluye un intérprete 'c'. La versión estándar es gratuita (cerveza) pero no de código abierto.

uwin : sin ATT, incluye el shell korn si como ese tipo de cosas.

mks un puerto comercial de herramientas de Unix. Bastante caro dadas las versiones gratuitas disponibles.

Prueba:

find /c /v "~any string that will never occur~"

Este comando proporciona un recuento de todas las líneas que NO contienen la cadena de búsqueda. Al probarlo, veo un problema que parece que no cuenta las líneas en blanco al final de un archivo.

Lamento no estar de acuerdo, pero unxutils tiene un wc.exe

¡Pruébalo!

Saludos,

Mi unxutils cuenta el recuento de palabras:

  

C: \ Java \ vssWorkspace \ java \ portlets_core > wc   -l C: \ Users \ malp \ AppData \ Local \ Temp__portlets41366.html   79717   C: \ Users \ malp \ AppData \ Local \ Temp__portlets41366.html

Además, la página unxutils indica que wc.exe está disponible. ¿Está buscando algo que wc.exe no maneja?

Aquí hay otras dos formas (para Windows CMD puro) de contar líneas en un registro de git:

set n=0
for /f %a in ('git log --oneline') do set /a n=n+1

O:

git log --online | find /v /c ""

La ventaja de la primera es que terminas con el valor en una variable de entorno con la que puedes hacer cosas. Pero podría funcionar lento con archivos enormes.

También hay WinXs 4.2 , es shareware, por lo que Podrías ver si va a hacer lo que necesites.

¿Podrías instalar un lenguaje de script para esto? Puede ser una exageración, pero si hace el trabajo con un mínimo de esfuerzo ...

getgnuwin32 facilita la descarga e instalación de gnuwin32 (lo que sin duda tiene utilidad de wc) ).

Encontré este hilo y quedé encantado con las soluciones innovadoras para emular wc usando solo las herramientas que Windows ha incorporado. Esto estimuló una respuesta a mi necesidad de contar con un personaje para poder prevalecer en mi batalla con un formulario web. advertencia de caracteres máximos del campo.

Si desea wc -c , que da un recuento de bytes, puede usar DEBUG , una utilidad de DOS (que no aparece en la lista del comando AYUDA) en Windows. El conteo de caracteres debe ser igual al conteo de bytes menos el conteo de líneas por el tamaño de una nueva línea, que es un carácter de nueva línea para Unix ('\ n') o dos caracteres, retorno de carro + salto de línea ('\ cr' y '\ lf' o ' \ 0Dh '' 0Ah 'para un archivo de texto plano de DOS.

Recuento de caracteres = Recuento de bytes - (Recuento de líneas * sizeof (" \ n "))

Para hacer esto, abra una ventana de línea de comandos (Inicio- > Ejecutar > Abrir: " cmd "), ejecute la depuración en el archivo de texto sin formato y examine el registro CX que contiene la longitud del archivo cargado:

  

Depurar [nombre de ruta]   -rcx   CX [longitud del archivo en hexadecimal]   :   -q

Luego ejecuta la búsqueda en el archivo:

  

encuentra / v / c " notlikelystring "   ---------- [ruta de acceso]: [recuento de líneas]

Y aplica la fórmula.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top