有没有人知道如何将字符串中的所有空格替换为Makefile中的新行(GNU make)
答案 0 :(得分:20)
text := hello a b c
null :=
space := ${null} ${null}
${space} := ${space}# ${ } is a space. Neat huh?
define \n
endef
$(error [$(subst ${ },${\n},${text})])
答案 1 :(得分:4)
使用GNU Make的shell
函数与sed
进行替换可能更容易 - 也更干净 - 而不是试图在make
内完全执行。
STRING := foo bar baz
SPLIT := $(shell echo "${STRING}" | sed -e 's/ /\n/g')
或者,如果您的shell为bash
而不是默认sh
,则稍微好一点:
STRING := foo bar baz
SPLIT := $(shell sed -e 's/ /\n/g' <<< ${STRING})