У меня есть каталог, содержащий несколько файлов, некоторые из которых содержат пробелы в именах:
Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
Я использую команду GNU $ (подстановочный знак)
в этом каталоге, а затем перебрать результат, используя $(foreach)
, распечатав все. Вот код:
FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Вот что я ожидал увидеть в распечатанном виде:
Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
Вот что я получил на самом деле:
Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Последнее мне явно не нужно. В документациидля $(wildcard)
прямо указано, что она возвращает "список имен, разделенных пробелами", но совершенно не признает огромных проблем, которые это вызывает. Как и документация для $(foreach)
.
Можно ли это обойти? Если да, то как? Переименовывать каждый файл и каталог, чтобы удалить пробелы, не вариант.