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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.