Quel est l'équivalent Windows de «wc -l»?

53

Quel est l'équivalent Windows de la commande Linux / Unix wc -l?

Fondamentalement, comment comptez-vous le nombre de lignes générées par une commande sur la ligne de commande Windows?

Niall
la source
Vous pouvez également utiliser les outils GnuWin32 et avoir wc(bien, wc.exe...) gnuwin32.sourceforge.net
ivanivan

Réponses:

66

La commande Linux / Unix "line count" wc -la un équivalent Windows de find /c /v "".

Comment cela marche-t-il?

Selon Raymond Chen de The Old New Thing , cela fonctionne comme tel depuis

C'est une particularité de la findcommande que la chaîne NULL soit traitée comme ne correspondant jamais.

Le nombre inversé ( /v) count ( /c) compte donc effectivement toutes les lignes; par conséquent, la ligne compte.

Exemple d'utilisation

Pour compter le nombre de fichiers modifiés dans une copie de travail Subversion:

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

Une telle commande peut être utilisée pour marquer une construction comme "sale" si le décompte ne l'est pas 0, c'est-à-dire s'il y a des modifications non validées dans la copie de travail.

Pour obtenir un nombre de lignes de tous vos fichiers Java:

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

La commande find /c /v ""peut également être ajoutée à un fichier de commandes si nécessaire. N'oubliez pas de dupliquer les %caractères dans des fichiers batch.


PowerShell

Un équivalent de PowerShell en état de fonctionnement Measure-Object -linenécessite certains formats supplémentaires, par exemple (liste de répertoires par souci de simplicité),

(ls | Measure-Object -line).Lines
Niall
la source
1
Merci d'avoir partagé. Créé un élément
maheshwaghmare
11

Dans PowerShell, pour obtenir un nombre de lignes de tous vos fichiers java:

type *.java | Measure-Object -line
utilisateur3808394
la source
3
bienvenue au superutilisateur: - la question portait sur CMD pas PowerShell, si vous pouvez répondre au PO, éditez votre réponse. ceux-ci peuvent aider Comment répondre , comment demander , aidez le centre à nouveau bienvenue à superuer et j'espère que vous reviendrez, merci
mic84
9
Merci @ mic84. La question concerne la ligne de commande Windows. Et Microsoft tente de remplacer CMD par PowerShell: networkworld.com/article/3143196/windows/… C'est donc une réponse très utile.
user3808394
-2

findstr / n / r.

Ceci est une expression rationnelle limitée, donc / n indique le numéro de ligne du match et "." correspond à n'importe quel personnage.

Gary Gatten
la source
2
La question n'est pas comment afficher le fichier avec les numéros de ligne; la question est de savoir comment déterminer le nombre de lignes du fichier.
Scott
Regardez le nombre de la dernière ligne, et c'est combien de lignes sont dans le fichier. La commande "find" fonctionne aussi, mais peut-être que findstr sera utile dans certains cas. Je l'ai trouvé.
Gary Gatten le
Ce n’est pas une réponse très conviviale, d’autant plus que nous avons reçu quelques réponses plus directes. Mais, si telle est votre réponse,  modifiez-  la pour la rendre plus claire et complète.
Scott