2011-08-10 10 views
3

私はfindstr正規表現を書いて、サブバージョンを使ってローカルとリモートの修正ファイルを見つけようとしています。 以下の出力例では、最初の文字または2番目の文字として 'M'を持つ行をマッチさせたいと思います。他にもありますが、これが私の出発点です。私の正規表現にスペースが必要なときにfindstrを使う方法

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 

私の正規表現は、次のようになります。 M 4184 IECore \ IE_Unexport_Signals.m

これが唯一の最初の列に私たちにMを選ぶ:与えsvn status --show-updates . |findstr "^[M]"。 2番目の列を選択しても出力結果は表示されません。svn status --show-updates . |findstr "^[ M][ M]" これは、文字クラスのスペースが原因と考えられます。ドキュメントを読む私は/C:を使ってスペースをリテラルとして解釈する必要がありますが、これはすべて文字をリテラルとして取るので、正規表現は機能しません。 また、スペースを "\"でエスケープしても機能しません。

「M」を1文字目または2文字目とする行はどのように一致させることができますか?

答えて

5

次のコマンドは、トリックを行うようだ:

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

それはスペースで区切られた2つの正規表現を使用しています。

+0

これは興味深い問題です。それを使って、私が興味を持っている他のパターンを含めて正規表現を拡張しました[http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.status.html] 'svn st -u | findstr/r"^[ADMRCXI?!] ^。[MC]^.. L^... \ +^... S^..... [KOTB] ^。 ..... \ * "'。それはかなりではありませんが、偽陽性のない仕事をしなければなりません。理想的には、私は 'クリーナー'の回答をしたいと思います... – Craig