Ярославль


Страницы: (2) 1 [2]   ( Перейти к первому непрочитанному сообщению ) Ответ в темуСоздание новой темыСоздание опроса

Можно ли массово переименовать названия файлов?

gheuy
Дата 18.10.2006 - 09:41
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 1028
Пользователь №: 5068
Регистрация: 25.10.2005 - 13:25





Цитата (bigxxl @ 17.10.2006 - 18:32)
У меня вот так получилось:
for name in `find file*` ; do mv $name prefix_$name ; done

file и prefix_ поставить нужными

+1
PMПисьмо на e-mail пользователю
Top
gheuy
Дата 18.10.2006 - 09:43
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 1028
Пользователь №: 5068
Регистрация: 25.10.2005 - 13:25





find . | while read a; do gzip $a; done

как вариант - он тебе еще их и загзипует:)
PMПисьмо на e-mail пользователю
Top
gheuy
Дата 18.10.2006 - 09:44
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 1028
Пользователь №: 5068
Регистрация: 25.10.2005 - 13:25





#!/usr/local/bin/perl

foreach(<*>) {
$old = $_;
s/name/surname/;
rename $old $_;
}
PMПисьмо на e-mail пользователю
Top
Basil IV
Дата 18.10.2006 - 09:45
Цитировать сообщение




Unregistered












Цитата (gheuy @ 18.10.2006 - 10:43)
find . | while read a; do gzip $a; done

как вариант - он тебе еще их и загзипует:)

Эээ.... А переименует ли? cool.gif
Top
gheuy
Дата 18.10.2006 - 09:48
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 1028
Пользователь №: 5068
Регистрация: 25.10.2005 - 13:25





PMПисьмо на e-mail пользователю
Top
lazeegod
Дата 18.10.2006 - 09:59
Цитировать сообщение




В желтых штанах
***

Профиль
Группа: Пользователи
Сообщений: 204
Пользователь №: 3152
Регистрация: 3.03.2005 - 13:42





Цитата (bigxxl @ 17.10.2006 - 17:32)
У меня вот так получилось:
for name in `find file*` ; do mv $name prefix_$name ; done

file и prefix_ поставить нужными

Ден, ну так не совсем верно делать если файлов много. Шеловские конструкции типа * тоже имеют определенные ограничения, в том числе и на длину получившейся после подстановки строки. Так что тут наверно правильно пользовать find с опцией -exec.
PMПисьмо на e-mail пользователю
Top
bigxxl
Дата 19.10.2006 - 16:11
Цитировать сообщение




Молчаливый Боб
********

Профиль
Группа: Пользователи
Сообщений: 39573
Пользователь №: 3681
Регистрация: 4.06.2005 - 22:07





а для зануд пишу:
for name in `find file* | xargs -n 1000` ; do mv $name prefix_$name ; done


smile.gif)))
PMПисьмо на e-mail пользователю
Top
lazeegod
Дата 25.10.2006 - 10:36
Цитировать сообщение




В желтых штанах
***

Профиль
Группа: Пользователи
Сообщений: 204
Пользователь №: 3152
Регистрация: 3.03.2005 - 13:42





Цитата (bigxxl @ 19.10.2006 - 16:11)
а для зануд пишу:
for name in `find file* | xargs -n 1000` ; do mv $name prefix_$name ; done


smile.gif)))

Зануды считают, что вместо file* надо писать file\*
и for нафиг не нужен ибо, как написано выше есть -exec :-)
PMПисьмо на e-mail пользователю
Top

Опции темы Страницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса

 



[ Время генерации скрипта: 0.0105 ]   [ Использовано запросов: 15 ]   [ GZIP включён ]



Яндекс.Метрика

Правила Ярпортала (включая политику обработки персональных данных)

Все вопросы: yaroslavl@bk.ru