Qual é o equivalente do Windows a "wc -l"?

53

Qual é o equivalente do Windows ao comando Linux / Unix wc -l?

Basicamente, como você conta o número de linhas de saída de um comando na linha de comando do Windows?

Niall
fonte
Você também pode usar as ferramentas do GnuWin32 e ter wc(bem, wc.exe...) gnuwin32.sourceforge.net
ivanivan 15/01

Respostas:

66

O comando Linux / Unix "line count",, wc -ltem um equivalente do Windows em find /c /v "".

Como é que isso funciona?

Segundo Raymond Chen, do The Old New Thing , isso funciona como tal desde

É uma peculiaridade especial do findcomando que a cadeia nula seja tratada como nunca correspondendo.

O inverted ( /v) count ( /c) conta efetivamente todas as linhas; portanto, a contagem de linhas.

Exemplo de uso

Para contar o número de arquivos modificados em uma cópia de trabalho do subversion:

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

Esse comando pode ser usado para marcar uma compilação como "suja" se a contagem não for 0, ou seja, houver alterações não confirmadas na cópia de trabalho.

Para obter uma contagem de linhas de todos os seus arquivos Java:

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

O comando find /c /v ""também pode ser adicionado a um arquivo em lotes, se necessário. Lembre-se de duplicar os %caracteres em arquivos em lotes.


PowerShell

Um equivalente do PowerShell em funcionamento é necessário Measure-Object -linecom alguma formatação adicional, por exemplo, (lista de diretórios por simplicidade),

(ls | Measure-Object -line).Lines
Niall
fonte
11
Obrigado por compartilhar. Criou uma lista principal para referência - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare
11

No PowerShell, para obter uma contagem de linhas de todos os seus arquivos java:

type *.java | Measure-Object -line
user3808394
fonte
3
bem-vindo ao superusuário: - a pergunta era sobre CMD, não PowerShell; se você puder responder ao OP, edite sua resposta. estes podem ajudar Como responder , Como perguntar , centro de ajuda vindos novamente à superuer e eu espero que você voltar, thankyou
mic84
9
Obrigado @ mic84. A questão é sobre a linha de comando do Windows. E a Microsoft está tentando substituir o CMD pelo PowerShell: networkworld.com/article/3143196/windows/… Portanto, essa é uma resposta bastante útil.
user3808394
-2

findstr / n / r.

Este é um regex limitado, portanto / n mostra o número da linha da correspondência e "." é igual a qualquer caractere.

Gary Gatten
fonte
2
A questão não é como exibir o arquivo com números de linha; a questão é como determinar o número de linhas no arquivo.
Scott
Veja o número da última linha, e é quantas linhas estão no arquivo. O comando "find" também funciona, mas talvez o findstr seja útil em alguns casos. Eu achei que fosse.
Gary Gatten 19/07
Essa não é uma resposta muito fácil de usar, especialmente porque recebemos algumas outras respostas mais diretas. Mas, se essa é sua resposta,  edite-  a para torná-la mais clara e completa.
Scott