Bagaimana cara menggunakan pola penamaan Nant / Ant?

99

Saya harus mengakui bahwa saya selalu melupakan intracacy sintaksis dari pola penamaan Nant (misalnya yang digunakan dalam kumpulan file). Tanda bintang ganda / tanda bintang tunggal tampaknya sangat terlupakan dalam pikiran saya.

Adakah yang bisa memberikan panduan pasti untuk pola penamaan?

berko
sumber
3
Saya sudah membaca referensinya. Dan baca ulang. Dan baca ulang. Saya hanya berpikir itu memiliki serangkaian contoh yang sangat buruk dan tidak jelas dalam pesannya.
berko
Mungkin Anda dapat menentukan dengan tepat apa yang ingin Anda capai dan seseorang dapat memberikan jawaban yang lebih baik?
Andy Whitfield

Jawaban:

240

Aturannya adalah:

  • satu bintang (*) cocok dengan nol atau lebih karakter dalam nama jalur
  • bintang ganda (**) cocok dengan nol atau lebih karakter di seluruh tingkat direktori
  • tanda tanya (?) sama persis dengan satu karakter dalam nama jalur

Cara lain untuk memikirkannya adalah bintang ganda (**) cocok dengan garis miring (/) tetapi bintang tunggal (*) tidak.

Katakanlah Anda memiliki file:

  1. bar.txt
  2. src / bar.c
  3. src / baz.c
  4. src / test / bartest.c

Kemudian polanya:

  • *.c             tidak ada yang cocok (tidak ada file .c di direktori saat ini)
  • src/*.c     cocok dengan 2 dan 3
  • */*.c         cocok dengan 2 dan 3 (karena * hanya cocok dengan satu level)
  • **/*.c       cocok dengan 2, 3, dan 4 (karena ** cocok dengan sejumlah level)
  • bar.*         cocok 1
  • **/bar.*   cocok dengan 1 dan 2
  • **/bar*.* cocok dengan 1, 2, dan 4
  • src/ba?.c cocok dengan 2 dan 3    
benzado
sumber
5
Saya pikir ini adalah penjelasan yang jauh lebih baik daripada referensi Nant. Bersulang!
berko
1
Apa yang cocok dengan src / * / **? Saya berharap itu menjadi 4, tetapi pengalaman saya dengan maven tampaknya menunjukkan bahwa Anda cocok dengan file apa pun di folder mana pun yang Anda butuhkan src / * / * / **
Matthew Buckett
1
apa yang **.ccocok?
chharvey
3
Saya tidak menggunakan Ant lagi, jadi saya tidak berada di tempat untuk menjawab pertanyaan lanjutan. Anda harus mengajukan pertanyaan baru atau, bahkan lebih baik, menemukan jawabannya dan kemudian mengirimkan suntingan untuk jawaban saya.
benzado
1
@sitaktif Salah satu cara untuk memikirkannya bar.txtadalah secara implisit ./bar.txt( .artinya direktori sekarang). Jadi daftar yang benar-benar ./bar.txt, ./src/bar.c, dll dan ./diasumsikan.
benzado
16

Berikut beberapa kecocokan pola tambahan yang tidak begitu jelas dari dokumentasi. Diuji menggunakan NAnt untuk file contoh dalam jawaban benzado:

  • src**                      cocok dengan 2, 3 dan 4
  • **.c                        cocok dengan 2, 3, dan 4
  • **ar.*                    cocok dengan 1 dan 2
  • **/bartest.c/**  cocok 4
  • src/ba?.c/**        cocok dengan 2 dan 3
busi
sumber
2
catatan kecil: dengan semut (1.8.2) **. c tidak ada pengganti ** / *. c
nonsenz
4

Tanda bintang ganda ( **) dikaitkan dengan nama folder yang cocok, sedangkan tanda bintang tunggal ( * = multi characters) serta tanda tanya ( ? = single character) digunakan untuk mencocokkan nama file.

Aditya Kumar Shrivastava
sumber
3

Lihat referensi Nant . Pola kumpulan file adalah:

'*' cocok dengan nol atau lebih karakter, misalnya * .cs
'?' cocok dengan satu karakter, misalnya? .cs

Dan '**' cocok dengan pohon direktori, misalnya src / ** / *. Cs akan menemukan semua file cs di sub-direktori src.

Andy Whitfield
sumber