8

Попытка найти любые файлы определенного шаблона в каталоге и его подкаталогах. Я старался:

C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found

в надежде найти файлы типа

abc.txt.r12222
tjy.java.r9994

Где число добавляется после буквы r, сделано SVN.

Что я делаю неправильно?

3 ответа3

9

Я только что ответил на это на Stack Overflow пару дней назад. https://stackoverflow.com/questions/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872

В вашем случае это будет выглядеть так:

dir * /s/b | findstr \.r[0-9]+$

Обновить

Символ * в одном из других примеров ".r [0-9] * $" также находит записи, заканчивающиеся на 'r', так как квантификатор * означает 0 или более.

0

Я предлагаю вам сделать это с помощью grep - утилиты для UNIX-подобных систем, которая была перенесена в Windows и может сопоставлять строки с помощью регулярных выражений.

grep входит в комплект MSYS MinGW, установщик можно найти здесь. (установить только MSYS)

Затем вам нужно будет добавить инструменты MSYS в переменную PATH, каталогом по умолчанию для MSYS является C:\MinGW\msys\1.0\bin

Наконец, вы можете выполнить поиск с помощью этой команды:

ls -a | grep ^.+\..+\.r[0-9]+$

... что означает: "получить вывод из ls -a (список файлов, включая скрытые файлы) и передать его в grep , сопоставить строки, которые выглядят как ..r [0-9] * (хотя бы одна звездочка обозначена каждой звездочкой )».

0

Вы можете попробовать это:

dir /a| findstr .r[0-9]*$

Для получения справки введите findstr /? ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .