LINUX.ORG.RU
#!/bin/bash

fname="a.tar.gz"
ext=${fname##*.}
echo "$ext"

name=`basename "$fname" ".$ext"`
echo $name


result:
gz
a.tar

можно и без basename, но лень думать. %-)
mirage
()
Ответ на: комментарий от isden
ну, это оно, в общем, и есть в выделении расширения. но чтобы дальше сделать такое же, мне надо курить man bash, а лом. ибо строчка сия выдрана из моего скрипта, которому имя было не надо, только ext. чтобы не думать, имя добыл через basename. задачу автора оно, в принципе, решает. а если автора не устроит — man bash; о чём читать, видно из примера. примерно такая логика. %-)
mirage
()
Ответ на: комментарий от anonymous
спасибо. последний ананимус - не автор.
anonymous
()
Ответ на: комментарий от mirage
В лучших домах Парижа и Ла[`]ндона не принято использовать башизмы.
Посему :

vitus@vitus:~$ echo "ffd.ss.ad" | sed s~.*\\\.\\\([^\\\.]*\\\)$~\\1~
ad

и

vitus@vitus:~$ echo "ffd.ss.ad" | sed s~\\\(.*\\\)\\\.[^\\\.]*$~\\1~
ffd.ss
vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus
аффтар просил *баш-скрипт*, общими усилиями его и получил. для zsh тоже работает. а больше всё равно никаких *sh на свете нет. %-)
mirage
()
Ответ на: комментарий от sdio
>gz

А имя файла без расширения также?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.