Qual é o equivalente do Windows de “wc -l”?

34

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

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

    
por Niall 18.08.2015 / 14:18

2 respostas

42

O comando "line count" do Linux / Unix, wc -l , tem um equivalente no Windows de find /c /v "" .

Como isso funciona?

De acordo com Raymond Chen, da The Old New Thing , isso funciona como tal desde;

It is a special quirk of the find command that the null string is treated as never matching.

A contagem invertida ( /v ) ( /c ), portanto, conta efetivamente as linhas não nulas; daí a contagem de linhas.

Exemplo de uso

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

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

Esse comando pode ser usado para marcar uma construçã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 linha 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 de lote, se necessário.

PowerShell

Um equivalente de powershell de trabalho é Measure-Object -line com alguma formatação adicional necessária, por ex. (lista de diretórios para simplicidade);

(ls | Measure-Object -line ).Lines
    
por 18.08.2015 / 14:18
3

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

type *.java | Measure-Object -line
    
por 03.07.2018 / 09:26