bash расширение параметра имени файла

Я пытаюсь найти все файлы с определенным расширением и изменить их на другое расширение. Оба расширения будут введены в качестве аргументов командной строки. Как бы я установил переменную, равную имени файла перед «.» используя расширение параметра? Я новичок в написании сценариев, поэтому любая помощь будет принята с благодарностью!


person Will    schedule 13.04.2015    source источник


Ответы (1)


name=${param%.*}

установит name в значение $param без расширения.

Из руководства по bash:

${parameter%word}
${parameter%%word}
слово расширяется для создания шаблона, как и при расширении имени файла. Если шаблон соответствует конечной части развернутого значения параметра, то результатом расширения является значение параметра с кратчайшим совпадающим шаблоном (случай '%' ) или удален самый длинный совпадающий шаблон (случай '%%').

person Barmar    schedule 13.04.2015
comment
Благодарю вас! не могли бы вы объяснить, что означает %? - person Will; 13.04.2015