The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Имена файлов из koi8-r в win1251"
Отправлено jr, 21-Апр-05 17:55 
В общем, наваял скрипт perl, использует программу iconv:

----------
#!/usr/bin/perl

use strict;

my $path = @ARGV[0];
my $cfrom = $ARGV[1];
my $cto = $ARGV[2];
my $file = "";
my $name = "";
my $newname = "";

$path =~ s|/$||;

foreach $file ( sort { ( $b =~ s|/|/|g ) <=> ( $a =~ s|/|/|g ) } `find $path -regex "$path/.*" -pri
nt` ) {
   chomp $file;
   $file =~ m|(.+/)(.+)$|;
   $path = $1;
   $name = $2;
   $newname = `echo "$name" | iconv -f $cfrom -t $cto`;
   chomp $newname;
   rename ( "$path$name", "$path$newname" );
   print "$path $name -> $newname\n";
}
----------

параметры в командной сторке:
1 - путь
2 - из какой кодировки (KOI8-R, CP1251, и т.д.)
3 - в какую кодировку (KOI8-R, CP1251, и т.д.)

сортировка в цикле foreach предназначена для того, чтобы сначала переименовывались файлы самые глубокие в дереве каталогов

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру