ho una directory contenente diversi file, alcuni dei quali hanno spazi nei loro nomi:GNU può gestire nomi di file con spazi?
Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
io uso il comando di GNU $(wildcard)
su questa directory, e poi iterare il risultato usando $(foreach)
, la stampa di tutto. Ecco il codice:
FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Ecco quello che si aspetta di vedere stampato:
Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
Ecco cosa vorrei davvero ottenere:
Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Quest'ultimo è ovviamente di alcuna utilità per me. Lo standard documentation per $(wildcard)
dichiara che restituisce un "elenco di nomi separato dallo spazio" ma non riesce a riconoscere completamente gli enormi problemi che questo solleva. Né lo documentation per $(foreach)
.
È possibile aggirare questo problema? Se é cosi, come? Rinominare ogni file e directory per rimuovere gli spazi non è un'opzione.
sono stato in grado di ottenere '$' e '$ @'?. Se sei interessato, vedi la mia risposta qui sotto. e Louis, ha torto, funziona. Sentiti libero di provarlo da te –