порезать расширения (shell программирование)

Модератор: Модераторы разделов

Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

порезать расширения

Сообщение polachok »

пишу один скрипт, так там требуется у файла порезать расширение:
в переменной что-то типа lalala.1.2.tar.gz - надо избавиться от .tar.gz, а 1.2 чтоб осталось.
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: порезать расширения

Сообщение Alagert »

Недавно столкнулся с такой же проблемой, долго бился и случайно нашел решение в каком то номере linux gazet. А решение такое:

Код: Выделить всё

file="first.cpp"
temp=${first%%.*}

В переменной temp будет лежать first.
Вроде так.
Born to be ROOT
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: порезать расширения

Сообщение JaGoTerr »

Если известен формат имени файла (например имя-<старшая_версия>.<младшая_версия>.tar.gz)
Как вариант:
FILE_NAME=file-1.2.tar.gz
echo "FILENAME" | cut -d '.' -f 0-2
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: порезать расширения

Сообщение flook »

Если все файл вида .tar.gz, то

Код: Выделить всё

 echo $file | sed -e 's/.tar.gz//'

иначе - ИМХО никак. Или?
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: порезать расширения

Сообщение Bolverk »

Попробуй.

Код: Выделить всё

LONGNAME="lalala.1.2.tar.gz"
NAMELENGHT=${#LONGNAME}
SHORTNAME=${LONGNAME:0:$NAMELENGHT-7}

Это если известно сколько символов расширение.
Или просто ${FILENAME/%.tar.gz/}.
Это bash.
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: порезать расширения

Сообщение madskull »

(flook @ Четверг, 02 Июня 2005, 16:12) писал(а):Если все файл вида .tar.gz, то

Код: Выделить всё

 echo $file | sed -e 's/.tar.gz//'

иначе - ИМХО никак. Или?

можно и так, а точне sed -e 's/.tar.gz$//'
но я всегда использую ${file%.*}
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: порезать расширения

Сообщение polachok »

всем спасибо
1st beta ready Установка из исходников
И немедленно выпил.
Спасибо сказали:
Ananas
Сообщения: 64

Re: порезать расширения

Сообщение Ananas »

man basename
Спасибо сказали: