11

私はMercurialを使用しており、次の構造を持っています。

files
   test
       demo.jpg
       video.flv
       video.doc

   sport
       demo2.jpg
       picture.jpg
       text.txt
demo3.jpg
demofile3.doc

「files」ディレクトリの子であるすべてのディレクトリ内のすべての「jpg」ファイルのみを無視するglobフィルターを作成したい

files / *。jpgで試しましたが、機能しません。

何かアドバイスをいただければ幸いです。

4

3 に答える 3

16

正規表現ソリューション


これは私のために働きます..

syntax: regexp
files/.*/.*jpg


独自のソリューションは、グロブのように見えます。その秘訣は、**構文を使用してサブディレクトリを許可することです。これを参照してください...

グロブソリューション


このグロブは私にも効きます

**/files/**/*.jpg


コメントコメント

個人的には、この種の問題には常にglobsyntxを使用します。**構文について理解したら、正規表現よりもパターンが実行しようとしていることを追跡する方が簡単です。

于 2010-07-22T07:52:02.710 に答える
12

「」という名前のディレクトリ内のすべてのJPGファイルを無視してもかまわない場合はfiles

syntax: glob
files/**.jpg

それがディレクトリセパレータにまたがるグロブ演算子であるhg help patternsと説明しているのはどれかを見てください。**これは、ファイルが

 files/test/demo.jpg

と一致しfiles/**.jpgます。

ただし、globパターンはルート化されていないことに注意してください。これは、

 test/files/demo.jpg

test/プレフィックスを削除した後のパターンと一致するため、無視されます。

これに関心がある場合は、正規表現を使用する必要があります。その構文では、パターンは次のようになります。

syntax: regex
^files/.*\.jpg

私は通常、パターンをルート化することについて心配しません-私はグロブパターンの単純さを好みます。しかし、本当に必要な場合は、無視パターンをルート化できることを知っておくと便利です。

于 2010-07-22T13:26:11.393 に答える
0

グロブ構文である必要がありますか?正規表現構文を使用する場合は、files/.*\.jpg機能するはずです。

于 2010-07-22T07:40:17.307 に答える