Skip to content

Instantly share code, notes, and snippets.

@ig0r74
Last active December 18, 2015 06:17
Show Gist options
  • Select an option

  • Save ig0r74/2dcedd919608b0ff149a to your computer and use it in GitHub Desktop.

Select an option

Save ig0r74/2dcedd919608b0ff149a to your computer and use it in GitHub Desktop.
Перекодирует рекурсивно в текущем каталоге имена файлов и каталогов в транслит.
#!/bin/bash
#Пример перехода в папку: cd /home/user/Рабочий\ стол/папка/
#далее: ./to-translit.sh или bash to-translit.sh
# Перекодирует рекурсивно в текущем каталоге имена
# файлов и каталогов в транслит.
SCRIPT=`readlink -e $0`
for NAME in *
do
LAT="$(echo $NAME | sed y/абвгдеёзийклмнопрстуфхцы/abvgdeezijklmnoprstufhcy/)"
LAT="$(echo $LAT | sed y/АБВГДЕЁЗИЙКЛМНОПРСТУФХЦЫ/abvgdeezijklmnoprstufhcy/)"
LAT="$(echo $LAT | sed s/ч/ch/g)"
LAT="$(echo $LAT | sed s/Ч/ch/g)"
LAT="$(echo $LAT | sed s/ш/sh/g)"
LAT="$(echo $LAT | sed s/Ш/sh/g)"
LAT="$(echo $LAT | sed s/ж/zh/g)"
LAT="$(echo $LAT | sed s/Ж/zh/g)"
LAT="$(echo $LAT | sed s/щ/sh/g)"
LAT="$(echo $LAT | sed s/Щ/sh/g)"
LAT="$(echo $LAT | sed s/э/e/g)"
LAT="$(echo $LAT | sed s/Э/e/g)"
LAT="$(echo $LAT | sed s/ю/ju/g)"
LAT="$(echo $LAT | sed s/Ю/ju/g)"
LAT="$(echo $LAT | sed s/я/ja/g)"
LAT="$(echo $LAT | sed s/Я/ja/g)"
LAT="$(echo $LAT | sed s/ъ//g)"
LAT="$(echo $LAT | sed s/Ъ//g)"
LAT="$(echo $LAT | sed s/ь//g)"
LAT="$(echo $LAT | sed s/Ь//g)"
# Заменить символ пробела на символ подчёркивания
LAT="$(echo $LAT | sed s/\\s/_/g)"
LAT="$(echo $LAT | sed s/_-_/-/g)"
if [[ `file -b "$NAME"` == directory ]]
then
mv -v "$NAME" "$LAT"
cd "$LAT"
bash "$SCRIPT"
cd ..
else
mv -v "$NAME" "$LAT"
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment