我正在尝试编写一个findstr使用subversion查找本地和远程修改文件的正则表达式.鉴于下面的示例输出,我想匹配那些以'M'作为第一个或第二个字符的行.还会有其他人,但这是我的出发点.
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
Run Code Online (Sandbox Code Playgroud)
我的正则表达式如下:svn status --show-updates . |findstr "^[M]"它给出:M 4184 IECore\IE_Unexport_Signals.m
这只会在第一列中选择M. 修改为拾取第二列导致无输出:svn status --show-updates . |findstr "^[ M][ M]"
这似乎是由于字符类中的空格.阅读我应该/C:用来将空间解释为文字的文档,但这会将所有字符作为文字,因此正则表达式将不起作用.用"\"转义空间也行不通.
如何匹配那些以'M'作为第一个或第二个字符的行?
以下命令似乎可以解决问题:
svn status --show-updates . |findstr /r "^M ^.M"
Run Code Online (Sandbox Code Playgroud)
它使用两个由空格分隔的正则表达式.