comando windows command-line dos unix

windows - comando grep linux



¿Conoce un programa similar para wc(comando de conteo de palabras de Unix) en Windows? (10)

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 en una sesión de DOS.

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

los paquetes unxutils yy gnuwin32 pueden tener esta característica ...


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

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

Char Count = Byte Count - (Line Count * sizeof ("/ n"))

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

Debug [ruta de acceso] -rcx CX [longitud de archivo en hexadecimal]: -q

Luego ejecuta find en el archivo:

find / v / c "notlikelystring" ---------- [pathname]: [line count]

Y aplica la fórmula.


Bueno, lamento no estar de acuerdo, pero los archivos desinstalados tienen un wc.exe

¡Darle una oportunidad!

Aclamaciones,


Mi paquete de unxutils tiene un conteo 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 de anulación indica que wc.exe está disponible. ¿Estás buscando algo que wc.exe no maneje?


También hay WinXs 4.2 , es shareware, por lo que podría ver si hace lo que necesita.

¿Podrías instalar un lenguaje de script para esto? Puede ser exagerado, pero si hace el trabajo con un mínimo de alboroto ...


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


Tratar:

encuentra / c / v "~ cualquier cadena que nunca ocurrirá ~"

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


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

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: similar a unixtools, originalmente solo unas pocas herramientas de compilación necesarias para ir con mingw (versión nativa de gcc), ahora tiene casi todas las herramientas de cygwin

cygwin : casi todo para unix, instalación compleja y requiere dll para proporcionar la API de Unix. Puede haber problemas al mezclar herramientas creadas con diferentes versiones de cygwin.dll

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

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

uwin - libre de ATT, incluye el shell korn si te gusta ese tipo de cosas.

mks a Puerto comercial de herramientas de Unix. Bastante caro teniendo en cuenta las versiones gratuitas disponibles.



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.