>> Решение первой задачи:
>> for ii in *;do mv "$ii" "${ii%.*}.new.${ii##*.}";done
>> решение обратной задачи:
>> for ii in *;do mv -- "$ii" "${ii%.new.*}.${ii##*.}";done
> to sany
> Прошу прощения, а можно вас попросить краткий комментарий дать, например зачем двойной
> тире во второй операции а также двойной # в обеих если
> вас не затруднит :) mv --
программа mv написанна с использование функции getopt, для разбора аргументов, что позволяет указать завершение параметров программы, т.е все последйющие аргументы будут восприниматься как не-параметры.
Пример.
toch -- file -f
mv -f -- file file.new # -f является параметром программы mv
mv -- -f -f.new # -f является файлом
${ii##*.} ${ii%.*}
Это "Parameter Expansion" или "Parameter substitution", "Раскрытие/подстановка параметров".
${параметр(%,%%,#,##)шаблон_из_регулярных_выражений}
${параметр#шаблон} - подставляет значение параметра, в котором из головной части удалён наименьший фрагмент, удовлетворяющий шаблону.
${параметр##шаблон} - подставляет значение параметра, в котором из головной части удалён наибольший фрагмент, удовлетворяющий шаблону.
${параметр%шаблон} - подставляет значение параметра, в котором из хвостовой части удалён наименьший фрагмент, удовлетворяющий шаблону.
${параметр%%шаблон} - подставляет значение параметра, в котором из хвостовой части удалён наибольший фрагмент, удовлетворяющий шаблону.
Пример
export ii=new.file.new
echo ${ii#*.}
file.new
echo ${ii##*.}
new
echo ${ii%.*}
new.file
echo ${ii%.*}
new
http://ru.wikipedia.org/wiki/Регулярные_выражения
P.s.
>у вас за шелл
>можно вас попросить
/вас/Вас/