Qual è l'equivalente di Windows di "wc -l"?


53

Qual è l'equivalente di Windows del comando Linux / Unix wc -l?

Fondamentalmente, come si conta il numero di righe emesse da un comando sulla riga comandi di Windows?


Potresti anche usare gli strumenti GnuWin32 e effettivamente avere wc(beh, wc.exe...) gnuwin32.sourceforge.net
ivanivan

Risposte:


66

Il comando "line count" di Linux / Unix wc -l, ha un equivalente di Windows di find /c /v "".

Come funziona?

Secondo Raymond Chen di The Old New Thing , questo funziona da allora

È una stranezza particolare del findcomando che la stringa nulla viene trattata come mai corrispondente.

Il /vconteggio invertito ( ) ( /c) quindi conta efficacemente tutte le linee; quindi, il conteggio delle righe.

Esempio di utilizzo

Per contare il numero di file modificati in una copia di lavoro di sovversione:

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

Un tale comando può essere usato per contrassegnare una build come "sporca" se il conteggio non lo è 0, vale a dire, ci sono cambiamenti non impegnati nella copia di lavoro.

Per ottenere un conteggio di riga di tutti i file Java:

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

Il comando find /c /v ""può anche essere aggiunto a un file batch, se necessario. Ricorda di duplicare i %caratteri in file batch.


PowerShell

Un equivalente di PowerShell funzionante Measure-Object -linerichiede una formattazione aggiuntiva, ad esempio (elenco di directory per semplicità),

(ls | Measure-Object -line).Lines

1
Grazie per la condivisione. Creato un esempio per riferimento - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare

11

In PowerShell, per ottenere un conteggio di riga di tutti i file java:

type *.java | Measure-Object -line

3
benvenuto da superutente: - la domanda riguardava CMD e non PowerShell, se è possibile rispondere all'OP, modificare la risposta. questi possono aiutare Come rispondere , Come chiedere , aiuto di nuovo il centro di benvenuto al supervisore e spero che tu ritorni, grazie
mic84

9
Grazie @ mic84. La domanda riguarda la riga di comando di Windows. E Microsoft sta cercando di sostituire CMD con PowerShell: networkworld.com/article/3143196/windows/… Quindi questa è una risposta abbastanza utile.
user3808394

-2

findstr / n / r.

Questa è una regex limitata, quindi / n mostra il numero di riga della corrispondenza e "." corrisponde a qualsiasi carattere.


2
La domanda non è come visualizzare il file con i numeri di riga; la domanda è come determinare il numero di righe nel file.
Scott,

Guarda il numero dell'ultima riga ed ecco quante righe ci sono nel file. Anche il comando "trova" funziona, ma forse findstr sarà utile in alcuni casi. L'ho trovato.
Gary Gatten,

Questa non è una risposta molto user-friendly, soprattutto dato che abbiamo ricevuto un paio di altre risposte più dirette. Ma, se questa è la tua risposta,  modifica la  tua risposta per renderla più chiara e completa.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.