在 makefile 中用新行替换空格

发布于 2024-10-12 15:02:05 字数 50 浏览 1 评论 0原文

有谁知道如何将字符串中的所有空格替换为 Makefile(GNU make) 中的新行

Does anyone know how to replace all spaces in a string in to a new line in a Makefile(GNU make)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木格 2024-10-19 15:02:05
text := hello a b c

null :=
space := ${null} ${null}
${space} := ${space}# ${ } is a space. Neat huh?

define \n


endef

$(error [$(subst ${ },${\n},${text})])
text := hello a b c

null :=
space := ${null} ${null}
${space} := ${space}# ${ } is a space. Neat huh?

define \n


endef

$(error [$(subst ${ },${\n},${text})])
花期渐远 2024-10-19 15:02:05

使用 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})

It's probably easier -- and cleaner -- to use GNU Make's shell function with sed to do the replacement, rather than trying to do it entirely within make.

STRING := foo bar baz
SPLIT  := $(shell echo "${STRING}" | sed -e 's/ /\n/g')

Or, slightly better, if your shell is bash instead of the default sh:

STRING := foo bar baz
SPLIT  := $(shell sed -e 's/ /\n/g' <<< ${STRING})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文