Ну, это можно сделать, но это довольно грязно, чтобы реализовать вручную.Самое простое, что можно сделать - это получить стандартную библиотеку GNU Make , которая имеет встроенную функцию substr
.Если это излишне, вы можете извлечь только эту функцию из библиотеки, но, как я уже сказал, она на удивление грязная.
По сути, вы делаете серию подстановок в строке, чтобы вставить пробел после каждого символа:
EMPTY:=
SPACE:=$(EMPTY) $(EMPTY)
VAR := UnKnown
TMP:=$(subst a,a ,$(subst b,b ,$(subst c,c ,.........$(VAR)))))
# TMP now has "U n K n o w n"
Далее вы можете использовать функцию $(wordlist)
, чтобы получить первые два "слова"промежуточного результата:
TMP2:=$(wordlist 1,2,$(TMP))
# TMP2 now has "U n"
Наконец, вы снова используете $(subst)
, чтобы убрать пространство, изначально введенное вами:
VAR_TERSE := $(subst $(SPACE),,$(TMP2))
# VAR_TERSE now has "Un"