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.