Возникла необходимость переименовать кучу файлов с русскими названиями в транслит. В ЛОР-ФАК нашел скрипт, который это делает. Проблема в том, что там используется tr, который, как оказалось, уникод не понимает (только у меня?), а у меня как раз локаль utf8. Пришлось его немного поменять: $ cat /usr/bin/trl-u | iconv -f KOI8-R -t UTF-8 #!/bin/sh # russian->translit # GOST 16876-71 # locale UTF-8 shopt -s nullglob for NAME in * do CNAME=$(echo $NAME | iconv -f UTF-8 -t KOI8-R) TRS=`echo $CNAME | tr абвгдезиклмнопрстуфцы abvgdeziklmnoprstufcy` TRS=`echo $TRS | tr АБВГДЕЗИКЛМНОПРСТУФЦЫ ABVGDEZIKLMNOPRSTUFCY` TRS=${TRS//й/jj} TRS=${TRS//Й//JJ} TRS=${TRS//х/kh} TRS=${TRS//Х/KH} 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//щ/shh}; TRS=${TRS//Щ/SHH} TRS=${TRS//э/eh}; TRS=${TRS//Э/EH} 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 То есть, смысл такой - сам файл скрипта записал в koi8-r + внутри скрипта, прежде чем скормить имя файла tr'у, преобразовываю его в koi8-r. Так работает. А теперь вопрос: действительно не существует юникодного tr? И можно ли обойтись без таких вот лишних телодвижений? А может, вообще все у всех работало и так - тогда почему у меня не работало? П.С. Если у кого возникали проблемы со скриптом из ФАК'а в локали utf8, то этот вариант - рабочий.
Ответ на:
комментарий
от sdio
Ответ на:
комментарий
от sdio
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от sdio
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Zenity] Не выполняет отмену (2011)
- Форум Проблема с BASH скриптом в Synology при запуске в CRON, почему? (2021)
- Форум tr, непонятно (2013)
- Форум qt tr() (2007)
- Форум QMessageBox + tr() = @#%^* (2005)
- Форум aterm -tr (2001)
- Форум *UMA-Uniformity-Tr (2016)
- Форум bash & tr & russian (2023)
- Форум i18n || I18N_NOOP || tr ? (2005)
- Форум unicode (2005)