Страница 1 из 1

Снова need help !

Добавлено: 2009-02-09 13:13:53
Fastman
Есть путь в виде строки:

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

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

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

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

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

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

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

т.е. префикс нужно менять только у последней директории.

Re: Снова need help !

Добавлено: 2009-02-09 14:21:54
zg

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

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

Re: Снова need help !

Добавлено: 2009-02-09 15:27:13
Fastman
zg писал(а):

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

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

Re: Снова need help !

Добавлено: 2009-02-09 15:56:07
zg
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, дело вкуса -)

Re: Снова need help !

Добавлено: 2009-02-09 18:27:41
Fastman
ZG - спасибо, разобрался :)
Я вроде не тупой, но ленивый :)