web-dev-qa-db-fra.com

Quel est l'équivalent Windows de "wc -l"?

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?

43
Niall

wc -l, la commande Linux/Unix "nombre de lignes" a un équivalent Windows de find /c /v "".

Comment cela marche-t-il?

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

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

Le nombre inversé (/v) (/c) compte donc efficacement 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 compte n'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 de traitement par lots.


PowerShell

L'équivalent de PowerShell en état de marche est Measure-Object -line avec certaines mises en forme supplémentaires requises, par exemple, (liste de répertoires par souci de simplicité),

(ls | Measure-Object -line).Lines
53
Niall

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

type *.Java | Measure-Object -line
7
user3808394