LINUX.ORG.RU
ФорумAdmin

Скрипт для переименовывания файлов под винду.


0

0

Есть винт. На нём записаны и регулярно добавляются новые файлы с именами на русском языке. Так вот, если виндовский русский виден под линухом, то линохоидный под виндой - нет. Хотелось бы использовав какую-то общую бибиотеку(как в links) написать скрипт, который переименует все имена на транслит.

Ответ на: комментарий от sdio

Мне бы скрипт, который не транслитерирует текст, а который переименовывает файлики, ато я плохо башевые скрипты пишу...

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

Если под виндой, то - вот здесь (правда не скрипт, а консольная утилита-исполняемый файл,ее только скомпилировать):
http://shgpi.edu.ru/forum/viewtopic.php?f=15&t=21

Если под линуксом, то где-то уже было на форуме что-то вроде этого:

#!/bin/bash
shopt -s nullglob
for NAME in * ; 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
    cd "$NAME"
    "$0"
    cd ..
  fi
  if [[ "$NAME" == "$TRS"  ]]; then continue; fi
  mv -v "$NAME" "$TRS"
done

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

Я не понял, а почему если я создаю файлы с русскими названиями на виндовом разделе, то и под виндой все отображается нормально?

utf-8

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

Телепатирую: виндовый раздел правильно примонтирован.

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