Если имеется имя файла (без пути), то иногда стоит задача получить имя файла без расширения. Сделать это можно двумя путями, в зависимости от того, какой результат нужно получить.
Следующий скрипт показывает два варианта команды получения имени файла без расширения:
myfile=anyfile.so.1.0
echo ${myfile%.*}
echo $myfile | sed 's/\..*//'
Данный скрипт выведет:
anyfile.so.1
anyfile
Видно, что первый вариант выдает имя файла без последнего сегмента расширения (без 0), а второй вариант убирает все расширения.