web-dev-qa-db-fra.com

Connaissez-vous un programme similaire pour wc (commande unix Word count) sous Windows?

Une recherche rapide me donne tawbaware wc , mais il n'accepte pas stdout comme flux d'entrée, ce qui signifie que je ne peux pas utiliser de pipe dans un [~ # ~] dos [~ # ~] session.

Remarque:

Je ne peux pas installer cygwin ni utiliser PowerShell (ce qui aurait permis une '|foreach-object {(get-content $_).count}')

nxutils et and gnuwin32 Les packages peuvent avoir cette fonctionnalité ...

36
VonC

Vous pouvez utiliser le "wc" original, construit pour Windows: il fait partie du paquet coreutils . Obtenez le exe coreutils le plus récent .

28
florin

Encore plus facile, find /c. ex:

netstat -an | find /c "ESTABLISHED"

find /c: affiche uniquement le nombre de lignes contenant la chaîne.

30
jeff drake

Pour les outils Unix sur Windows, vos options sont les suivantes:

msys - similaire à unixtools, à l'origine juste quelques outils de build nécessaires pour aller avec mingw (version native de gcc), a maintenant presque tous les outils cygwin

cygwin - à peu près tout pour unix, une installation complexe et nécessite une DLL pour fournir l'api unix. Peut être un problème de mixage des outils construits avec différentes versions de cygwin.dll

nixtools - pas tous les outils fournis par cygwin mais compilés nativement

ch - à peu près tous les outils Unix, compilés nativement. Et un Shell qui comprend un interprète "c". La version standard est gratuite (bière) mais pas open source.

win - sans ATT, inclut le Shell korn si vous aimez ce genre de chose.

mks un port commercial d'outils Unix. Assez cher compte tenu des versions gratuites disponibles.

9
Martin Beckett

Essayer:

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

Cette commande donne un compte de toutes les lignes qui NE PAS contiennent la chaîne de recherche. En le testant, je vois un problème qui ne semble pas compter les lignes vides à la fin d'un fichier.

5
Dan S.

Eh bien, je suis désolé de ne pas être d'accord, mais nxutils ont un wc.exe

Essaie!

À votre santé,

3
Vinzz

Mon nxutils pack a le nombre de mots:

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

En outre, la page unxutils indique wc.exe est disponible. Recherchez-vous quelque chose que wc.exe ne gère pas?

3
Miguel Ping

Voici deux autres façons (CMD Windows pur) de compter les lignes dans un journal git:

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

Ou:

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

L'avantage du premier est que vous vous retrouvez avec la valeur d'une variable d'environnement avec laquelle vous pouvez faire des choses. Mais il peut fonctionner lentement avec des fichiers volumineux.

2
user1698758

J'ai trouvé ce fil et j'ai été séduit par les solutions innovantes pour émuler wc en utilisant uniquement les outils intégrés par Windows. avertissement.

Si vous voulez wc -c qui donne un nombre d'octets, vous pouvez utiliser DÉBOGAGE , un utilitaire DOS (qui n'est pas répertorié par la commande HELP) dans Windows. Le nombre de caractères doit être égal au nombre d'octets moins le nombre de lignes multiplié par la taille d'une nouvelle ligne, qui est un caractère de nouvelle ligne pour Unix ('\ n') ou deux caractères, retour chariot + saut de ligne ('\ cr' et '\ lf' ou '\0Dh '' 0Ah 'pour un fichier texte en clair DOS.

Nombre de caractères = nombre d'octets - (nombre de lignes * taille de ("\ n"))

Pour ce faire, ouvrez une fenêtre de ligne de commande (Démarrer-> Exécuter-> Ouvrir: "cmd"), exécutez le débogage sur le fichier texte brut et examinez le registre CX qui contient la longueur du fichier chargé:

Déboguer [chemin d'accès] -rcx CX [longueur de fichier en hexadécimal]: -q

Exécutez ensuite la recherche sur le fichier:

find/v/c "notlikelystring" ---------- [chemin]: [nombre de lignes]

Et appliquez la formule.

0
user1575451

getgnuwin32 facilite le téléchargement et l'installation de gnuwin32 (qui a certainement l'utilitaire wc).

0
jfs

Il y a aussi WinXs 4.2 , c'est un shareware, donc vous pouvez voir s'il fera ce dont vous avez besoin.

Pourriez-vous installer un langage de script pour cela? C'est peut-être exagéré, mais s'il fait le travail avec un minimum de tracas ...

0
marty