¿Cómo uso los patrones de nomenclatura Nant/Ant?
(4)
Aquí hay algunas coincidencias de patrones extra que no son tan obvias en la documentación. Probado usando NAnt para los archivos de ejemplo en la respuesta de benzado:
-
src**
coincide con 2, 3 y 4 -
**.c
coincide con 2, 3 y 4 -
**ar.*
coincide con 1 y 2 -
**/bartest.c/**
coincide 4 -
src/ba?.c/**
coincide con 2 y 3
Tengo que admitir que siempre olvidé las intracaias sintácticas de los patrones de nomenclatura para Nant (por ejemplo, los que se usan en los conjuntos de archivos). El doble asterisco / asterisco simple parece ser muy olvidable en mi mente.
¿Puede alguien proporcionar una guía definitiva para los patrones de nombres?
Las reglas son:
- una sola estrella (*) coincide con cero o más caracteres dentro de un nombre de ruta
- una estrella doble (**) coincide con cero o más caracteres en los niveles de directorio
- un signo de interrogación (?) coincide exactamente con un carácter dentro de un nombre de ruta
Otra forma de pensar es doble estrella (**) coincide con barra inclinada (/), pero la estrella simple (*) no.
Digamos que tienes los archivos:
- bar.txt
- src / bar.c
- src / baz.c
- src / test / bartest.c
Entonces los patrones:
-
*.c
no coincide con nada (no hay archivos .c en el directorio actual) -
src/*.c
coincide con 2 y 3 -
*/*.c
coincide con 2 y 3 (porque * solo coincide con un nivel) -
**/*.c
coincide con 2, 3 y 4 (porque ** coincide con cualquier cantidad de niveles) -
bar.*
coincide con 1 -
**/bar.*
coincide con 1 y 2 -
**/bar*.*
coincide con 1, 2 y 4 -
src/ba?.c
coincide con 2 y 3
Los asteriscos dobles ( **
) están asociados con la coincidencia de nombres de carpetas, mientras que los símbolos individuales asterisco ( * = multi characters
), así como el signo de interrogación ( ? = single character
) se utilizan para coincidir con los nombres de archivo.
Mira la referencia de Nant . Los patrones del conjunto de archivos son:
''*'' coincide con cero o más caracteres, p. ej. * .cs
''?'' coincide con un personaje, por ejemplo? .cs
Y ''**'' coincide con un árbol de directorios, por ejemplo, src / ** / *. Cs encontrará todos los archivos cs en cualquier subdirectorio de src.