LINUX.ORG.RU

пока надыбал такую вещь


#!/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

sneer
() автор топика

вот слегка подправил - работает с utf8,
самому было надо ;)

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

shopt -s nullglob

for NAME in *.mp3 ; do
  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//Ь/\'}
  if [[ `file -b "$NAME"` == directory ]]; then
    mv -v "$NAME" "$TRS"
    cd "$TRS"
    "$0"
    cd ..
  else
    mv -v "$NAME" "$TRS"
  fi
done

anonymous
()
Ответ на: комментарий от anonymous

Я - не программист. Поэтому использую бесплатную прогу RusToEng_Renamer. Правда она переименовывает файлы. Зато наглядно. Можно и под себя настроить (э, ё щ - как тебе лучше) Десятки тысяч файлов за раз. И в в поддиректориях. В том числе и в Линуксе (Через Wine)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.