Was ist das Windows-Äquivalent von "wc -l"?

52

Was ist das Windows-Äquivalent zum Linux / Unix-Befehl wc -l?

Wie wird die Anzahl der Zeilen gezählt, die von einem Befehl in der Windows-Befehlszeile ausgegeben werden?

Niall
quelle
Sie könnten auch die GnuWin32-Tools verwenden und tatsächlich wc( nawc.exe
ja

Antworten:

65

Der Linux / Unix-Befehl "line count" wc -lhat eine Windows-Entsprechung von find /c /v "".

Wie funktioniert das?

Laut Raymond Chen von The Old New Thing funktioniert dies seitdem als solches

Es ist eine Besonderheit des findBefehls, dass die Nullzeichenfolge als nie passend behandelt wird.

Der inverted ( /v) count ( /c) zählt somit effektiv alle Zeilen; daher die Zeilenanzahl.

Anwendungsbeispiel

So zählen Sie die Anzahl der geänderten Dateien in einer Subversion-Arbeitskopie:

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

Ein solcher Befehl kann verwendet werden, um einen Build als "unsauber" zu markieren, wenn der Zähler nicht vorhanden ist 0, dh wenn in der Arbeitskopie nicht festgeschriebene Änderungen vorgenommen wurden.

So ermitteln Sie die Zeilenanzahl aller Ihrer Java-Dateien:

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

Der Befehl find /c /v ""kann bei Bedarf auch zu einer Batch-Datei hinzugefügt werden. Denken Sie daran, die %Zeichen in Batch-Dateien zu duplizieren .


Power Shell

Eine funktionierende PowerShell-Entsprechung ist Measure-Object -linemit einigen zusätzlichen Formatierungen erforderlich, z. B. (Verzeichnisliste zur Vereinfachung).

(ls | Measure-Object -line).Lines
Niall
quelle
1
Danke für das Teilen. Erstellt eine Übersicht als Referenz - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare
11

So ermitteln Sie in PowerShell die Zeilenanzahl aller Java-Dateien:

type *.java | Measure-Object -line
user3808394
quelle
3
Willkommen beim Superuser: - Die Frage betraf CMD und nicht Powershell. Wenn Sie das OP beantworten können, bearbeiten Sie bitte Ihre Antwort. diese können helfen , wie man Antwort , Wie zu fragen , Hilfe wieder zu superuer begrüßen und ich hoffe , dass Sie zurückkommen , danke
mic84
9
Vielen Dank @ mic84. Die Frage bezieht sich auf die Windows-Befehlszeile. Und Microsoft versucht, CMD durch PowerShell zu ersetzen: networkworld.com/article/3143196/windows/… Das ist also eine recht nützliche Antwort.
user3808394
-2

findstr / n / r.

Dies ist ein begrenzter regulärer Ausdruck, daher zeigt / n die Zeilennummer der Übereinstimmung und "." Stimmt mit einem beliebigen Zeichen überein.

Gary Gatten
quelle
2
Die Frage ist nicht, wie die Datei mit Zeilennummern angezeigt werden soll. Die Frage ist, wie man die Anzahl der Zeilen in der Datei ermittelt.
Scott
Schauen Sie sich die Nummer der letzten Zeile an und sehen Sie, wie viele Zeilen sich in der Datei befinden. Der Befehl "find" funktioniert auch, aber vielleicht ist findstr in einigen Fällen hilfreich. Ich habe es gefunden.
Gary Gatten
Dies ist keine sehr benutzerfreundliche Antwort, zumal wir einige direktere Antworten erhalten haben. Wenn dies jedoch Ihre Antwort ist,  bearbeiten Sie  Ihre Antwort, um sie klarer und vollständiger zu gestalten.
Scott