Снова need help !

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Снова need help !

Непрочитанное сообщение Fastman » 2009-02-09 13:13:53

Есть путь в виде строки:

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

/path/folder/file.ext
Как красиво сделать из этой строки средствами sh:

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

/path/folder_PREFIX/file.ext2
Те необходимо изменить расширение файла и добавить префикс директории в которой он будет находиться.

P.S.
Путь могет быть и

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

 /path/path2/path3/folder/file.ext

т.е. префикс нужно менять только у последней директории.
Главное в жизни здоровье и любовь, остальное я все куплю.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Снова need help !

Непрочитанное сообщение zg » 2009-02-09 14:21:54

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

zg# pwd
/usr/home/zg
zg# basename `dirname $PWD`
home
zg#

Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Re: Снова need help !

Непрочитанное сообщение Fastman » 2009-02-09 15:27:13

zg писал(а):

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

zg# pwd
/usr/home/zg
zg# basename `dirname $PWD`
home
zg#
Это понтяно...
Мне надо ИЗМЕНИТЬ путь и расширение в строке...
Главное в жизни здоровье и любовь, остальное я все куплю.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Снова need help !

Непрочитанное сообщение zg » 2009-02-09 15:56:07

Fastman писал(а):Мне надо ИЗМЕНИТЬ путь и расширение в строке...
гм... это может показаться странным, но мне вспомнилась мегаигра - лого, с черепашкой. Не игрался с ней? -)) С виду простые действия, но результат может быть очень сложным.

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

zg# ./1.sh
/usr/local/etc/rc.d_someprefix/script.sh.ext2
zg# cat 1.sh
#!/bin/sh
file=/usr/local/etc/rc.d/script.sh

FILENAME=`basename "${file}"`
 DIRPATH=`dirname  "${file}"`
 DIRNAME=`basename "${DIRPATH}"`
 DIRPATH=`dirname  "${DIRPATH}"`

 PREFIX="_someprefix"
POSTFIX=".ext2"

TRANSLATEPATH="${DIRPATH}/${DIRNAME}${PREFIX}/${FILENAME}${POSTFIX}"

echo "${TRANSLATEPATH}"
можно сделать и с помощью awk, дело вкуса -)

Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Re: Снова need help !

Непрочитанное сообщение Fastman » 2009-02-09 18:27:41

ZG - спасибо, разобрался :)
Я вроде не тупой, но ленивый :)
Главное в жизни здоровье и любовь, остальное я все куплю.