gpt4 book ai didi

string - Makefile:返回字符串的前两个字符

转载 作者:行者123 更新时间:2023-12-01 11:04:40 25 4
gpt4 key购买 nike

给定 Makefile 中的字符串,是否可以使用 Makefile 语法(不使用 shell 调用)提取未知字符串的前两个字符?

例如,

VAR := UnKnown
VAR_TERSE = $(call get_first_two_chars, $(VAR))

define get_first_two_char
...
endef

最佳答案

好吧,它可以完成,但是手动实现非常困惑。最简单的方法是获取 GNU Make Standard Library ,它有一个内置的 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)再次,现在剥离您最初注入(inject)的空间:
VAR_TERSE := $(subst $(SPACE),,$(TMP2))
# VAR_TERSE now has "Un"

关于string - Makefile:返回字符串的前两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com