Мне было интересно, как я могу сделать следующее (в Windows)
Мне нужно проверить общее количество символов в полном пути ко всему в c:\directory и всех подкаталогах. Вот команда, которую я использовал:
dir /b /s c:\directory\ > output.csv
/B Использует простой формат (без заголовка или резюме).
/S Отображает файлы в указанном каталоге и всех подкаталогах.
Проблема в том, что c:\directory — это SVN-извлечение и содержит кучу файлов .svn-base, которые я не хочу видеть в файле output.csv. Как мне отфильтровать вывод из DIR, чтобы не видеть ни одного из этих файлов .svn или .svn-base в output.csv, в который я передаю вывод?
Я попытался использовать Excel для поиска в первом столбце в output.csv, чтобы выбрать все строки, содержащие «svn», но в этом CSV-файле содержится более 30 000 строк, и если я сделаю это таким образом, то на фильтрацию всех данных может потребоваться некоторое время.
Есть ли что-то похожее на grep для windows, что я могу использовать для этого? Я скачал grep GNUWin32, но когда я пытаюсь его использовать, я получаю ошибку об отсутствующем файле библиотеки.
Я также пробовал использовать переключатель /AH в DIR, но по какой-то причине я все еще получаю папки .svn в каждом подкаталоге :( Вполне возможно, что я не использую переключатель, чтобы правильно отображать скрытые файлы..
решение1
В командной строке cmd это должно сработать:
dir /b /s c:\directory\ | Findstr /V /I .svn > output.csv
Если вы используете Windows 7/8 или у вас установлен Powershell, я бы посоветовал вам изучить его. В Powershell вы бы сделали что-то вроде:
Get-ChildItem . -exclude *.svn -recurse | Select-Object Name | Export-CSV .\output.csv -NoTypeInformation
решение2
Альтернативное решение (по стоимости размера)
Перед dir svn export
WC в export-dir и таким образом устраните .svn dir(s)