Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Групповое переименнование расширенний файлов  (Прочитано 1553 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Вопрос, вроде как простой, подскажите как переименовать расширения у файлов не оставляя копии исходных файлов. Файлы такие:
file.ico
file1.ico
file2.ico
file3.ico
.........
Нужно сделать
file.png
file1.png
file2.png
file3.png
........
p.s.И для общего развития, как можно сделать чтоб исходные остались, а новые с расширеннием .png записались в другую директорию?

 
Пишу о разном сюда nixtalk.com

Оффлайн jack_solovey

  • Активист
  • *
  • Сообщений: 916
  • Mate, и никаких Unity
    • Просмотр профиля
GPRename 2.6

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Напишите скриптик.
Информация по применяемым командам.
man man
man find
man grep
man sed
man mv
man rm
PS. Недавно в программировании была почти аналогичная тема типа:
как из названий файлов убрать лишние символы.
Ваши задачи практически аналогичные.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Нашёл такой вариант  rename 's/\.flip$/.flop/'       # rename *.flip to *.flop
Применяю для моего примера: 
rename 's/\.ico$/.png/'   
И ничего не происходит, мигает курсор и всё, не ошибок, ни завершения, файлы остаются нетронутыми.
Пишу о разном сюда nixtalk.com

Oni-chan

  • Гость
a rename разве не так используется
rename .ico .png *.ico

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Так пишет ошибку:
dem@dem-laptop:$ rename .ico .png *.ico
syntax error at (eval 1) line 1, near "."
 
Пишу о разном сюда nixtalk.com

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6291
    • Просмотр профиля
rename 's/\.bak$/.ico/' *.ico

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
rename 's/\.bak$/.ico/' *.ico
Это вообще ничего не делает  :-\ Что-то не так подставлено.
Я нашёл почти рабочий вариант:
for i in *; do mv $i $i.png; done
Только тогда файлы принимают такой вид
file.ico.png
file1.ico.png
file2.ico.png
Надо ещё убрать .ico
« Последнее редактирование: 30 Сентября 2009, 13:57:08 от demontager »
Пишу о разном сюда nixtalk.com

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Надо ещё убрать ico
Посмотрите sed с опцией s

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Групповое переименнование расширенний 
« Ответ #9 : 30 Сентября 2009, 14:13:08 »
$ touch {1,2,3}.ico

$ ls -1
1.ico
2.ico
3.ico

$ rename 's/\.ico$/.png/' *.ico

$ ls -1
1.png
2.png
3.png

Ы?

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6291
    • Просмотр профиля
Re: Групповое переименнование расширенний файлов
« Ответ #10 : 30 Сентября 2009, 14:20:06 »
Это вообще ничего не делает  :-\ Что-то не так подставлено

Извиняюсь, перепечатывал из man, забыл подправить. Правильный вариант представил ArcFi - спасибо.
rename 's/\.ico$/.png/' *.ico

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Re: Групповое переименнование расширенний файлов
« Ответ #11 : 30 Сентября 2009, 14:36:01 »
Цитировать
rename 's/\.ico$/.png/' *.ico
Это работает на все 100, спасибо!
 А по ходу ещё вопрос, где можно почитать о выражениях "s/\, y/A " и др.? В man rename эти опции не описываются. Там есть просто два примера, и написано что они делают.
            
For example, to rename all files matching "*.bak" to strip the
       extension, you might say

 rename 's/\.bak$//' *.bak

       To translate uppercase names to lower, you’d use

               rename 'y/A-Z/a-z/' *
« Последнее редактирование: 30 Сентября 2009, 14:37:48 от demontager »
Пишу о разном сюда nixtalk.com

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6291
    • Просмотр профиля
Re: Групповое переименнование расширенний файлов
« Ответ #12 : 30 Сентября 2009, 14:54:16 »
А по ходу ещё вопрос, где можно почитать о выражениях "s/\, y/A " и др.?

В мануалах по регулярным выражениям Perl.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Групповое переименнование расширенний файлов
« Ответ #13 : 30 Сентября 2009, 14:57:41 »
sed "s/шило/мыло/g" file1
меняет везде шило на мыло в файле file1
Самая лучшая книга по башу Девида Тинсли.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Re: Групповое переименнование расширенний файлов
« Ответ #14 : 30 Сентября 2009, 15:10:22 »
Понял, спасибо, теперь нужно искать книжку о perl, что-то типа для начинающих :P Книгу Девида Тенсли пока не нашёл.
Пишу о разном сюда nixtalk.com

 

Страница сгенерирована за 0.02 секунд. Запросов: 19.