Có ai biết làm thế nào để thay thế tất cả các không gian trong một chuỗi vào một dòng mới trong một Makefile (GNU làm)Thay thế gian với dòng mới trong makefile
10
A
Trả lời
19
text := hello a b c
null :=
space := ${null} ${null}
${space} := ${space}# ${ } is a space. Neat huh?
define \n
endef
$(error [$(subst ${ },${\n},${text})])
3
Đó là lẽ dễ dàng hơn - và sạch hơn - để sử dụng chức năng shell
của GNU Make với sed
để thực hiện việc thay thế, thay vì cố gắng thực hiện hoàn toàn trong phạm vi make
.
STRING := foo bar baz
SPLIT := $(shell echo "${STRING}" | sed -e 's/ /\n/g')
Hoặc, tốt hơn một chút, nếu vỏ của bạn là bash
thay vì mặc định sh
:
STRING := foo bar baz
SPLIT := $(shell sed -e 's/ /\n/g' <<< ${STRING})
+0
Vấn đề duy nhất tôi tìm thấy với điều này là nó vẫn sử dụng các lệnh shell có nghĩa là nó tuân thủ ARG_MAX đó là vấn đề của tôi ở vị trí đầu tiên. Nhưng đó là một giải pháp tốt cho những vấn đề khác mà tôi có. Cảm ơn –
Các vấn đề liên quan
- 1. Thay thế dòng mới C#?
- 2. Thay thế một dòng mới trong TSQL
- 3. thay thế dòng mới sed
- 4. python regex để thay thế tất cả các cửa sổ dòng mới với không gian
- 5. Thay thế dòng mới bằng chuỗi Unicode
- 6. thay thế ký tự dòng mới trong biến bash?
- 7. Thêm dòng mới vào vòng lặp Makefile 'foreach'
- 8. Đếm thay đổi trong dòng thời gian với MySQL
- 9. Không gian sau dòng mới trong RichTextBox
- 10. Làm cách nào để thay thế dòng mới/ngắt dòng bằng dấu cách trong javascript?
- 11. Thay thế dòng mới/trả về bằng không gian bằng cách sử dụng regex
- 12. Thay thế một dòng với nhiều dòng văn bản
- 13. Làm thế nào để thay thế dòng mới trong ant trong outputfilterchain?
- 14. Trang Facebook mới Dòng thời gian API
- 15. Textbox với "dòng mới"
- 16. Cách thay thế nhiều dòng mới trong một hàng bằng một dòng mới bằng cách sử dụng Ruby
- 17. Làm thế nào để thay thế một ký tự bằng một dòng mới trong Emacs?
- 18. cách thay đổi^M thành dòng mới trong vim?
- 19. Sự cố với dòng mới trong Graphics2D.drawString
- 20. Mac OS thay thế ';' với dòng mới trên tập tin văn bản
- 21. Các dòng mới với ConfigParser?
- 22. Thay thế dấu cách và dòng mới bằng dấu phẩy trong php
- 23. thay thế chuỗi trong dòng lệnh zsh
- 24. Trong Eclipse, làm thế nào để thay thế một ký tự bằng một dòng mới?
- 25. Làm thế nào để sử dụng một dòng mới thay thế trong một BSD sed?
- 26. dòng mới trong squeak
- 27. Cách thay thế nhiều dòng "Thay thế tệp ..." trong Notepad ++
- 28. Java Regex - Sử dụng chuỗi thay thếTất cả phương pháp để thay thế dòng mới
- 29. Dòng lệnh Perl nhiều dòng thay thế
- 30. Trong tìm kiếm và thay thế vim, dòng mới được hiển thị dưới dạng "^ @"
Bạn có chắc chắn $ của nó {} trong dòng cuối cùng –
Vâng, tôi định nghĩa macro này trong dòng 5 '$ {space}' và '$ {}' đều hoạt động tốt ở đây. – bobbogo
Nó làm việc cho tôi –