假设我在makefile中有以下通配符匹配:
data-files = $(wildcard $(ptdf)/*.png) \
$(wildcard $(ptdf)/*.gif) \
$(wildcard $(ptdf)/*.bmp) \
$(wildcard $(ptdf)/*.jpg) \
$(wildcard $(ptdf)/*.ico) \
$(wildcard $(ptdf)/*.dist) \
$(wildcard $(ptdf)/*.html)通配符语法可以让我像正则表达式\w{1,2}那样匹配包含1到2个字母的文件名吗?没有文件扩展名?
如果没有,我如何使用linux命令的其他语法(如find等)来实现呢?
发布于 2012-11-12 23:05:42
下载source code和wildcard,我们发现line 1332 of function.c上的函数定义-wildcard调用string_glob,它只执行globbing,而不是正则表达式。而regex的源代码却什么也没找到:/
因为make没有内置的regex函数,所以我们必须使用外部命令。在find(1) man page上对regex进行work显示以下内容可以正常工作:
data-files = $(shell find . -regextype posix-extended -regex '.*\.\w{1,2}')https://stackoverflow.com/questions/13343302
复制相似问题