在 makefile :
中a = d:\wuyu
我的目的是在:
之前获得部分。也就是说,例子中的“d”。
使用b = $(patsubst :%,,$(a))
无效。变量“b”与变量“a”相同。使用
c = `echo $(a)|sed -e 's/:.*//'`
确实有效。但是由于sed命令中有*** multiple target patterns. Stop.
,因此在执行make时会导致另一个问题::
。在sed中添加\
不起作用。
因此,我该如何解决这个问题?
答案 0 :(得分:2)
patsubst不起作用,因为你的模式是:%
,它只匹配以冒号开头的字符串;你的字符串不是以冒号开头所以它不匹配,所以不执行替换。
您可以通过将字符串拆分为多个单词来完成此操作:
b = $(firstword $(subst :, ,$(a)))