我正在尝试过滤掉包含特定字符的字符串,但它不起作用。我猜make
不支持多种%
模式?
.PHONY: test
test:
echo $(filter-out %g%, seven eight nine ten)
给出:
$ make test
echo seven eight nine ten
seven eight nine ten
它不过滤掉“八”?实际上我想要做的是从包含“$”的文件名列表中过滤掉。 (在Java环境中。)
有什么希望,还是我必须使用$(shell)
?
感谢。
答案 0 :(得分:26)
以下功能是否符合目的?
FILTER_OUT = $(foreach v,$(2),$(if $(findstring $(1),$(v)),,$(v)))
$(call FILTER_OUT,g, seven eight nine ten)
答案 1 :(得分:11)
我最近做了类似的事情,使用两个wildcards
函数来排除某些文件
.PHONY: test
test:
echo $(filter-out $(wildcard *g*.c),$(wildcard *.c))