Como filtrar arquivos .svn-base da saída do comando DIR?

Como filtrar arquivos .svn-base da saída do comando DIR?

Eu queria saber como eu poderia fazer o seguinte (no Windows)

Preciso examinar o número total de caracteres no caminho completo para tudo em c:\directory e todos os subdiretórios. Aqui está o comando que eu estava usando:

dir /b /s c:\directory\ > output.csv

/B Usa formato simples (sem informações de título ou resumo).

/S Exibe arquivos no diretório especificado e em todos os subdiretórios.

O problema é que c:\directory é um checkout SVN e possui vários arquivos .svn-base que não quero ver no arquivo output.csv. Como faço para filtrar a saída do DIR para não ver nenhum desses arquivos .svn ou .svn-base em output.csv para os quais estou canalizando a saída?

Tentei usar o Excel para pesquisar a primeira coluna em output.csv para selecionar quaisquer linhas que contenham 'svn', mas este arquivo csv tem mais de 30.000 linhas e pode demorar um pouco para filtrar tudo se eu fizer dessa maneira .

Existe algo semelhante ao grep para Windows que eu possa usar para fazer isso? Baixei o grep GNUWin32, mas quando tento usá-lo, recebo um erro sobre a falta de um arquivo de biblioteca.

Eu também tentei usar a opção /AH no DIR e por alguma razão ainda recebo as pastas .svn em cada subdiretório :( Pode muito bem ser que eu não esteja usando a opção para não mostrar os arquivos ocultos corretamente.

Responder1

Em um prompt do cmd, isso deve ser feito:

dir /b /s c:\directory\ | Findstr /V /I .svn > output.csv

Se você estiver no Windows 7/8 ou tiver instalado o Powershell, sugiro que aprenda. No Powershell você faria algo como:

Get-ChildItem . -exclude *.svn -recurse | Select-Object Name | Export-CSV .\output.csv -NoTypeInformation

Responder2

Solução alternativa (pelo custo do tamanho)

Antes de dir svn exportWC em export-dir e elimine desta forma .svn dir(s)

informação relacionada