Created
July 21, 2017 20:53
-
-
Save rubinchyk/a5a1558f70c8cf1b0650cd65a9d19b8e to your computer and use it in GitHub Desktop.
Linux transliterate recursively files and folders from cyrillic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Даем права на запуск: | |
| # chmod +x translit.sh | |
| # Открываем и копируем листинг скрипта: | |
| # nano translit.sh | |
| #!/bin/bash | |
| # Перекодирует рекурсивно в текущем каталоге имена | |
| # файлов и каталогов в транслит. | |
| # shopt встроенная команда оболочки. Управляет опциями оболочки. | |
| # Если в каталоге нет ни одного файла, соответствующего шаблону, | |
| # то за имя файла принимается сам шаблон. | |
| # Ключ nullglob исправляет эту ситуацию | |
| shopt -s nullglob | |
| # Перебираем все файлы в текущем каталоге | |
| for NAME in * ; do | |
| # sed-ом заменяем символы кирилицы на символы латиницы | |
| TRS=`echo $NAME | sed "y/абвгдезийклмнопрстуфхцы/abvgdezijklmnoprstufxcy/"` | |
| TRS=`echo $TRS | sed "y/АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/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//Ь/\'} | |
| TRS=${TRS// /_} | |
| # переименовываем | |
| mv -v "$NAME" "$TRS" | |
| # Если это каталог, заходим в него | |
| if [[ `file -b "$TRS"` == directory ]]; then | |
| cd "$TRS" | |
| "$0" | |
| cd .. | |
| fi | |
| done | |
| # Перемещаем в /usr/bin/: | |
| # mv translit.sh /usr/bin/translit.sh | |
| # В нужной папке translit.sh |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment