The OpenNET Project / Index page

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

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

"Не работает - русские имена файлов в транслит."  
Сообщение от Fou (??) on 27-Окт-07, 12:29 
Нужно под Линукс Кубунту 7 перекодировать русские буквы в именах файлов в латиницу.

Нашёл в FAQ скрипт ( http://www.opennet.me/docs/RUS/lor_faq/lorFAQ-16.html ) в разделе "16.15 Как перекодировать русские названия файлов в транслит?".

#!/bin/sh
# Перекодирует рекурсивно в текущем каталоге имена
# файлов и каталогов в транслит.

shopt -s nullglob
for NAME in *
do
TRS=`echo $NAME | tr абвгдезийклмнопрстуфхцы abvgdezijklmnoprstufxcy` TRS=`echo $TRS | tr АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ ABVGDEZIJKLMNOPRSTUFXCY` TRS=${TRS//ч/ch}; TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh}; TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo}; TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh}; TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh\'}; TRS=${TRS//Щ/SH\'} TRS=${TRS//э/je}; TRS=${TRS//Э/JE} TRS=${TRS//ю/ju}; TRS=${TRS//Ю/JU} TRS=${TRS//я/ja}; TRS=${TRS//Я/JA} TRS=${TRS//ъ/\`}; TRS=${TRS//ъ\`} TRS=${TRS//ь/\'}; TRS=${TRS//Ь/\'} if [[ `file -b "$NAME"` == directory ]]; then
  mv -v "$NAME" "$TRS"
  cd "$TRS"
  "$0"
  cd ..
else
  mv -v "$NAME" "$TRS"
fi
done

Не работает. Говорит:
root@kef:~/cyr-latin-test# ./translit
./translit: 5: shopt: not found
./translit: 8: Syntax error: Bad substitution


1) shopt -s nullglob я догадался под рутом вручную выдать в коммандную строку, nullglob переключилось в on. Непонятно почему в скрипте не срабатывает.
2) В чём дело с "8: Syntax error: Bad substitution" - не понимаю (не знаю). Восьмая строка  это TRS=...
Помогите плиз отладить.

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

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Не работает - русские имена файлов в транслит."  
Сообщение от angra (ok) on 28-Окт-07, 06:25 
Пропущено черт знает сколько ;
А вообще лучше разбейте эту строку на несколько, с одной командой на каждой.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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