У меня есть список имен файлов:
FILES := a.b c.d e.f
и я хочу удалить расширения (суффиксы) всех слов, чтобы получить:
a c e
Каков наилучший способ сделать это?
Лучшее, что я мог придумать, было "обманывать" оболочкой:
$(shell for f in $(INS_NODIR); do echo -n "$${f%.*} "; done )
но я удивлен, что не было более "встроенного" способа сделать это только при создании встроенных функций.
вещь, которую я пробовал:
-
patsubst
. Кажется, что он может иметь только один шаблон, другие обрабатываются буквально, и я хотел бы сделать что-то вроде%.%, %
-
ищет функцию
notsufix
.Я был удивлен, что этого не существует, поскольку функция
dir
имеетnotdir
, но функцияsuffix
, которая точно извлекает расширения, не имеетnotsuffix
-компонента