首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU make通配符是否能够匹配更复杂的模式,例如regexp?

GNU make通配符是否能够匹配更复杂的模式,例如regexp?
EN

Stack Overflow用户
提问于 2012-11-12 19:57:50
回答 1查看 4.5K关注 0票数 1

假设我在makefile中有以下通配符匹配:

代码语言:javascript
复制
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等)来实现呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-12 23:05:42

下载source codewildcard,我们发现line 1332 of function.c上的函数定义-wildcard调用string_glob,它只执行globbing,而不是正则表达式。而regex的源代码却什么也没找到:/

因为make没有内置的regex函数,所以我们必须使用外部命令。在find(1) man page上对regex进行work显示以下内容可以正常工作:

代码语言:javascript
复制
data-files = $(shell find . -regextype posix-extended -regex '.*\.\w{1,2}')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13343302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档