$ ls /tmp/foo
file1.txt
$ ls /tmp/bar
file5.txt file7.txt
生成文件内容:
$ cat Makefile
NUMS = $(patsubst file%,%,$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))
all:
@echo $(NUMS)
当我执行制作时。
$ make
1 5 7
如何让它以逗号分隔的方式打印数字,例如:1,5,7
?
关于 makefile 解析规则(与其他一些语言(如 shell(不同(需要了解的重要一点是,在扩展变量之前将参数分解。
好消息是,这意味着你可以把任何你喜欢的特殊字符,通过把它"隐藏"在一个变量后面:
COMMA := ,
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
NUMS = $(subst $(SPACE),$(COMMA),$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))