Как использовать findstr, когда моему регулярному выражению требуется пробел - PullRequest
3 голосов
/ 10 августа 2011

Я пытаюсь написать findstr регулярное выражение, которое будет находить локальные и удаленные измененные файлы, используя subversion. Учитывая приведенный ниже пример выходных данных, я бы хотел сопоставить строки, в которых первый или второй символы обозначены буквой «М». Будут и другие, но это моя отправная точка.

C:\Documents and Settings\user\Desktop\code>svn status --show-updates .
X                    Core
        *     4069   D3_Version.m
Status against revision:   4184

Performing status on external item at 'Core'
M             4184   Core\IE_Unexport_Signals.m
X                    Core\2010
 M            4184   Core\images
 M            4184   Core
Status against revision:   4184

Performing status on external item at 'Core\2010'
Status against revision:   4184

Мое регулярное выражение выглядит так: svn status --show-updates . |findstr "^[M]", что дает: M 4184 IECore \ IE_Unexport_Signals.m

Это только выбирает нас М в первом столбце. Изменение также, чтобы забрать второй столбец приводит к отсутствию вывода: svn status --show-updates . |findstr "^[ M][ M]" Похоже, это связано с пробелом в классе персонажа. Читая документы, я должен использовать /C: для интерпретации пробела как литерала, но это принимает все символов как литералы, и поэтому регулярное выражение не будет работать. Также экранирование с помощью \ не работает.

Как я могу сопоставить те строки, в которых первый или второй символы обозначены буквой «М»?

1 Ответ

5 голосов
/ 10 августа 2011

Кажется, что следующая команда добивается цели:

svn status --show-updates . |findstr /r "^M ^.M"

Используются два регулярных выражения, разделенных пробелом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...