Pregunta

Busco una expresión regular para que coincida con cada archivo que empieza con un "" en un directorio.

Estoy usando CMake (de CMake doc: "CMake espera que las expresiones regulares, no globs") y quiere hacer caso omiso de todos los archivos empezando por un punto (archivos ocultos) PERO "\..*" o "^\..*" no funciona: (

Lo extraño: esto funciona (gracias a de rq ) y extraer todos los archivos ocultos y archivos temporales ( "~" archivos terminados)

file(GLOB DOT ".*")
file(GLOB TILD "*~")

set (CPACK_SOURCE_IGNORE_FILES "${DOT};${TILD}")

Pero no puedo encontrar lo que hay que escribir directamente en CPACK_SOURCE_IGNORE_FILES tener el mismo resultado!

Esta es la " doc " de esta variable.

¿Fue útil?

Solución

Suena como GLOB es probablemente lo que quiere.

Probar. Abrir un archivo "test.cmake" y añadir lo siguiente:

file(GLOB ALL "*")
file(GLOB DOT ".*")
file(GLOB NOTDOT "[^.]*")

message("All Files ${ALL}")
message("Dot files ${DOT}")
message("Not dot files ${NOTDOT}")

A continuación, cree un par de archivos de prueba:

touch .dotfile
touch notdot

A continuación, ejecute "cmake -P test.cmake". La salida es:

All Files /tmp/cmake_test/.dotfile;/tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake
Dot files /tmp/cmake_test/.dotfile
Not dot files /tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake

Esto fue probado con cmake 2.6.0.

Otros consejos

El uso de la sintaxis de expresiones regulares estándar:

^\..*

Desde CMake al parecer no le gusta esto, puede usar algo como:

^\\..*

Eso es sólo una suposición, sin embargo, ya no tengo / usar CMake.

La siguiente de una sola línea hará el trabajo (ocultar archivos ocultos y tilde ( "~") terminado):

set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*$;~$;${CPACK_SOURCE_IGNORE_FILES}")

Es necesario para escapar de ella.

^\..*

Prueba esto:

^[.].*
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top