0
Q
填充數字
A
回答
4
看來,製作(至少GNU MAKE)不具備的功能與這種類型的數據的處理好。你可以去野生和使用shell(只在Unix系統中):
NUMBERS = 8 9 10
NUMBERS2=$(foreach v,$(NUMBERS),$(shell printf '%02d' $(v)))
all:
echo $(NUMBERS2)
會打印:
08 09 10
2
如果每個數字不是太大,可以按如下方式實現:
__seq = $(foreach i,$(seq1),$(addprefix $i,$1))
seq1 := 0 1 2 3 4 5 6 7 8 9
seq2 := $(call __seq,$(seq1))
seq3 := $(call __seq,$(seq2))
# Args:
# 1. Padding (1, 2, or 3)
# 2. Numbers
pad = $(strip \
$(foreach n,$2, \
$(if $(subst 0,,$n), \
$(word $n,$(wordlist 2,$(words $(seq$1)),$(seq$1))), \
$(firstword $(seq$1)))))
NUMBERS := 8 9 10
all:
echo $(call pad,2,$(NUMBERS))