我在GNU make文件中有一个变量:
VAR=DDC
我想将这些字符合并到另一个字符串中,并将它们分配给另一个变量,例如:
TOT_VAR=--'D','D','C'--
我的第一个想法是执行类似以下伪代码的操作:
#Pseudo code
TOT_VAR=--'@(letter1, VAR)','@(letter2, VAR)','@(letter3, VAR)'--
但是我找不到提取单个字符的任何函数。我该怎么办?
您可以sed
用来进行转换:
echo DDC | sed -E "s/^(.{1})(.{1})(.{1}).*/--'\1','\2','\3'--/")
这是做什么的:
DDC
传送到sed
sed
解析字符串并匹配前三个字符DDC
为您的替换格式,将这三个字符插入占位符\1
,\2
然后\3
[如果您使用的是Linux操作系统而不是像我这样的MacOS,那么我认为您需要使用sed -e
而不是sed -E
]
就像@Maxim的注释说的那样,您需要从中调用Shellmake
才能运行此命令。将这种方法构建到一个简单的makefile中以说明:
VAR=DDC
TOT_VAR:=$(shell echo $(VAR) | sed -E "s/^(.{1})(.{1})(.{1}).*/--'\1','\2','\3'--/")
all:
echo "$(TOT_VAR)"
make all
在此上运行将产生以下输出,并显示替换已起作用:
echo "--'D','D','C'--"
--'D','D','C'--
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句