我正在寻找一个正则表达式来匹配每个以“。”开头的文件。在目录中。
我正在使用CMake(来自CMake doc:“CMake期望正则表达式,而不是globs”)并且想要忽略每个以点开头的文件(隐藏文件)但是"\..*"
或"^\..*"
没有工作:(
奇怪的是:这有效(感谢rq的answer)并删除所有隐藏文件和临时文件(“〜”终止文件)
file(GLOB DOT ".*")
file(GLOB TILD "*~")
set (CPACK_SOURCE_IGNORE_FILES "${DOT};${TILD}")
但我找不到直接写入CPACK_SOURCE_IGNORE_FILES
以获得相同结果的正确方法!
以下是此变量的“doc”。
答案 0 :(得分:3)
听起来像GLOB可能就是你想要的。
试试这个。打开文件“test.cmake”并添加以下内容:
file(GLOB ALL "*")
file(GLOB DOT ".*")
file(GLOB NOTDOT "[^.]*")
message("All Files ${ALL}")
message("Dot files ${DOT}")
message("Not dot files ${NOTDOT}")
然后创建几个测试文件:
touch .dotfile
touch notdot
然后运行“cmake -P test.cmake”。输出是:
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
这是用cmake 2.6.0测试的。
答案 1 :(得分:1)
使用标准正则表达式语法:
^\..*
由于CMake显然不喜欢这样,它可能会使用类似的东西:
^\\..*
这只是猜测,因为我没有/使用CMake。
答案 2 :(得分:1)
以下单行将完成工作(隐藏隐藏和波浪号(“〜”)终止文件):
set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*$;~$;${CPACK_SOURCE_IGNORE_FILES}")
答案 3 :(得分:0)
你需要逃脱它。
^\..*
答案 4 :(得分:0)
试试这个:
^[.].*