制作GNU:从变量获取字母/字符

鲨鱼

我在GNU make文件中有一个变量:

VAR=DDC

我想将这些字符合并到另一个字符串中,并将它们分配给另一个变量,例如:

TOT_VAR=--'D','D','C'--

我的第一个想法是执行类似以下伪代码的操作:

#Pseudo code
TOT_VAR=--'@(letter1, VAR)','@(letter2, VAR)','@(letter3, VAR)'--

但是我找不到提取单个字符的任何函数。我该怎么办?

razlebe

您可以sed用来进行转换:

echo DDC | sed -E "s/^(.{1})(.{1})(.{1}).*/--'\1','\2','\3'--/")

这是做什么的:

  1. 用管道将字符串DDC传送到sed
  2. 告诉sed解析字符串并匹配前三个字符
  3. 替换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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章