我有一个类似这样的变量:
VAR := obj/test obj/var/test2 bin/another/one bob/billy/joe
我想获取一个只包含第一个文件夹的变量,这样:
VAR2 = obj bin bob
我在想我需要使用 subst,但我不知道该怎么做...
最佳答案
不确定这是最简单的解决方案,但如果:
- 结果的顺序无关紧要,
- 您使用 GNU make,
- 文件夹名称中没有空格,
类似于:
VAR2 := $(sort $(foreach p,$(VAR),$(firstword $(subst /, ,$(p)))))
应该能做到。
$(subst/, ,$(p))
在make变量p
的扩展中用空格替换所有/
firstword
只保留结果的第一个词,也就是你感兴趣的第一个文件夹foreach
遍历VAR
的单词并将 make 变量p
设置为当前单词sort
删除重复项(和...排序)。
关于linux - 您将如何删除生成文件变量中每个字符串的基本文件夹以外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453808/