The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"русские имена в английские"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"русские имена в английские" 
Сообщение от dravor emailИскать по авторуВ закладки on 18-Июл-05, 21:32  (MSK)
Тут такое дело: нужно поднять сервак, файлопомойку. Три диска по 120Гиг. Заливали без меня и теперь там просто куча файлов и папок, в названиях которых есть русские буквы.
Может кто ткнуть в скрипт, который автоматом все это дело переименует в английские символы использую правила транслита? (А то с русскими всяческие скрипты криво работают, да и коряво как-то)
Поиск запускал, но то ли эта тема никого не волновала, то ли поиском пользоваться не умею...
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "русские имена в английские" 
Сообщение от lavr emailИскать по авторуВ закладки on 18-Июл-05, 22:40  (MSK)
>Тут такое дело: нужно поднять сервак, файлопомойку. Три диска по 120Гиг. Заливали
>без меня и теперь там просто куча файлов и папок, в
>названиях которых есть русские буквы.
>Может кто ткнуть в скрипт, который автоматом все это дело переименует в
>английские символы использую правила транслита? (А то с русскими всяческие скрипты
>криво работают, да и коряво как-то)
>Поиск запускал, но то ли эта тема никого не волновала, то ли
>поиском пользоваться не умею...

http://opennet.ru/prog/sml/144.shtml

я бы сперва прогнал всю эту помойку на предмет приведения dir-name & filename
к удобоваримому виду: замена пробелов и спецсимволов на _ и прочее, после чего
любым перекодировщиком поддерживающим translit - перекодировал. Однако,
судя по всему помойка может разные кодировки содержать, в этом разе лучше
даже не транслит, а наверное просто обрезать 8bit.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "русские имена в английские" 
Сообщение от vagrantt emailИскать по авторуВ закладки(ok) on 18-Июл-05, 23:15  (MSK)
можно попробовать что-то вроде этого

--------------------------------
cat rus_to_translit.sh
#!/bin/bash
for name in *;do
        mv "${name}" "`echo ${name} | iconv -t KOI-7 | tr [:upper:][:lower:] [:lower:][:upper:]`"
done
----------------------------
правильно обрабатываются пробелы, но это в пределах одно директории :) Остальное сам доделаешь :)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "русские имена в английские" 
Сообщение от dravor emailИскать по авторуВ закладки on 19-Июл-05, 14:40  (MSK)
iconv: conversion to KOI-7 unsupported

> iconv -l | grep KOI
KOI8-R CSKOI8R
KOI8-U
KOI8-RU
KOI8-T


меняю, к примеру, на LATIN1 и на русских названиях получаю:
iconv: (stdin): cannot convert
iconv: (stdin): cannot convert
iconv: (stdin): cannot convert
iconv: (stdin): cannot convert
......

> uname -sv
FreeBSD FreeBSD 5.4-STABLE #0:

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "русские имена в английские" 
Сообщение от vagrantt emailИскать по авторуВ закладки(ok) on 19-Июл-05, 15:22  (MSK)
Тогда вот
------------------------------
#!/bin/bash
for name in *;do
  mv "${name}" "`echo ${name} |tr "абвгдезийклмнопрстуфхцьыАБВГДЕЗИЙКЛМНОПРСТУФХЦЬЫ" "abvgdezijklmnoprstufhc'yABVGDEZIJKLMNOPRSTUFHC'Y"|sed -e 's/ё/io/g;s/ж/zh/g;s/ч/ch/g;s/ш/sh/g;s/щ/sch/g;s/э/\`e/g;s/ю/yu/g;s/я/ya/g;s/ъ/"/g;s/Ё/Io/g;s/Ж/Zh/g;s/Ч/Ch/g;s/Ш/Sh/g;s/Щ/Sch/g;s/Э/\`Е/g;s/Ю/Yu/g;s/Я/Ya/g;s/Ъ/"/g;'`"
done
-------------------------------------------------
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "русские имена в английские" 
Сообщение от lavr emailИскать по авторуВ закладки on 19-Июл-05, 15:37  (MSK)
>Тогда вот
>------------------------------
>#!/bin/bash
>for name in *;do
>  mv "${name}" "`echo ${name} |tr "абвгдезийклмнопрстуфхцьыАБВГДЕЗИЙКЛМНОПРСТУФХЦЬЫ" "abvgdezijklmnoprstufhc'yABVGDEZIJKLMNOPRSTUFHC'Y"|sed -e 's/ё/io/g;s/ж/zh/g;s/ч/ch/g;s/ш/sh/g;s/щ/sch/g;s/э/\`e/g;s/ю/yu/g;s/я/ya/g;s/ъ/"/g;s/Ё/Io/g;s/Ж/Zh/g;s/Ч/Ch/g;s/Ш/Sh/g;s/Щ/Sch/g;s/Э/\`Е/g;s/Ю/Yu/g;s/Я/Ya/g;s/Ъ/"/g;'`"
>done
>-------------------------------------------------

не пойдет если в именах будут пробелы

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "русские имена в английские" 
Сообщение от vagrantt emailИскать по авторуВ закладки(ok) on 19-Июл-05, 15:53  (MSK)
>>Тогда вот
>>------------------------------
>>#!/bin/bash
>>for name in *;do
>>  mv "${name}" "`echo ${name} |tr "абвгдезийклмнопрстуфхцьыАБВГДЕЗИЙКЛМНОПРСТУФХЦЬЫ" "abvgdezijklmnoprstufhc'yABVGDEZIJKLMNOPRSTUFHC'Y"|sed -e 's/ё/io/g;s/ж/zh/g;s/ч/ch/g;s/ш/sh/g;s/щ/sch/g;s/э/\`e/g;s/ю/yu/g;s/я/ya/g;s/ъ/"/g;s/Ё/Io/g;s/Ж/Zh/g;s/Ч/Ch/g;s/Ш/Sh/g;s/Щ/Sch/g;s/Э/\`Е/g;s/Ю/Yu/g;s/Я/Ya/g;s/Ъ/"/g;'`"
>>done
>>-------------------------------------------------
>
>не пойдет если в именах будут пробелы

проверил в Слаке (другого нет под рукой) - пробелы не помеха :)
-----------------------
serg@mops:~/Desktop/test$ ./rus_translit1.sh
mv: `rus_translit1.sh' и `rus_translit1.sh' - один и тот же файл
serg@mops:~/Desktop/test$ ls
novaya\ papka/  privet\ vam.txt  rus_translit1.sh*
---------------------------------

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "русские имена в английские" 
Сообщение от lavr emailИскать по авторуВ закладки on 19-Июл-05, 16:01  (MSK)
>>>Тогда вот
>>>------------------------------
>>>#!/bin/bash
>>>for name in *;do
>>>  mv "${name}" "`echo ${name} |tr "абвгдезийклмнопрстуфхцьыАБВГДЕЗИЙКЛМНОПРСТУФХЦЬЫ" "abvgdezijklmnoprstufhc'yABVGDEZIJKLMNOPRSTUFHC'Y"|sed -e 's/ё/io/g;s/ж/zh/g;s/ч/ch/g;s/ш/sh/g;s/щ/sch/g;s/э/\`e/g;s/ю/yu/g;s/я/ya/g;s/ъ/"/g;s/Ё/Io/g;s/Ж/Zh/g;s/Ч/Ch/g;s/Ш/Sh/g;s/Щ/Sch/g;s/Э/\`Е/g;s/Ю/Yu/g;s/Я/Ya/g;s/Ъ/"/g;'`"
>>>done
>>>-------------------------------------------------
>>
>>не пойдет если в именах будут пробелы
>
>проверил в Слаке (другого нет под рукой) - пробелы не помеха :)
>
>-----------------------
>serg@mops:~/Desktop/test$ ./rus_translit1.sh
>mv: `rus_translit1.sh' и `rus_translit1.sh' - один и тот же файл
>serg@mops:~/Desktop/test$ ls
>novaya\ papka/  privet\ vam.txt  rus_translit1.sh*
>---------------------------------


разбери логику for name in *
и $name

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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