Tôi có một thư mục chứa nhiều file, một số trong đó có khoảng trống trong tên của họ:GNU có thể xử lý tên tập tin bằng dấu cách không?
Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
tôi sử dụng lệnh GNU của $(wildcard)
vào thư mục này, và sau đó lặp qua các kết quả sử dụng $(foreach)
, in ra tất cả mọi thứ. Dưới đây là các mã:
FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Dưới đây là những gì tôi mong chờ để thấy in ra:
Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
Đây là những gì tôi thực sự sẽ nhận được:
Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Sau đó rõ ràng là không sử dụng đến tôi. documentation dành cho $(wildcard)
nói rõ rằng nó trả về "danh sách các tên được phân tách bằng dấu cách" nhưng hoàn toàn không nhận ra những vấn đề lớn mà điều này đặt ra. Cũng không phải documentation cho $(foreach)
.
Có thể giải quyết vấn đề này không? Nếu vậy, làm thế nào? Đổi tên mọi tệp và thư mục để xóa không gian không phải là một tùy chọn.
Tôi có thể nhận được '$?' Và '$ @'. Nếu bạn quan tâm, hãy xem câu trả lời của tôi bên dưới. và Louis, sai, nó hoạt động. Cảm thấy tự do để thử nghiệm nó ra cho mình –