FileRenamer

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
no avatar

Автор темы
pv13
Сообщения: 12
Зарегистрирован: 11 дек 2019, 10:08
Контактная информация:

FileRenamer

#1

11 дек 2019, 10:16

Подскажите,пожалуйста,как переименовать с транслита на русский имена файлов. Если можно,пошагово. Спасибо.

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#2

11 дек 2019, 10:20

pv13, написать скрипт с использованием одной из этих утилит
ИзображениеИзображение

Аватара пользователя

kobolt
Сообщения: 348
Зарегистрирован: 27 авг 2016, 21:53
Решено: 6
Откуда: Чебоксары
Благодарил (а): 40 раз
Поблагодарили: 121 раз
Контактная информация:

FileRenamer

#3

11 дек 2019, 12:56

я только ручные методы знаю:
1)вот. Копируешь имя файла и перекидываешь.
2)xneur. вроде должен поддерживать. горячие клавиши только надо в настройках глянуть. в пунтосвитчере alt+scrollLock - крутит и туда и обратно.
3) тык. переделать в обратку только. но как применять не понимаю))

Аватара пользователя

FreeStyler
Сообщения: 829
Зарегистрирован: 23 июл 2018, 07:58
Решено: 7
Откуда: Сиб
Благодарил (а): 772 раза
Поблагодарили: 94 раза
Контактная информация:

FileRenamer

#4

11 дек 2019, 13:31

pv13, думаю только самописным скриптом... можно достаточно быстро на php написать
deadmau5 - Harmonic Mix
■ KDE Neon 22.04 (UE) @ Lenovo IdeaPad 3-15 Ryzen 5 4500U, 18 Гб DDR-4, 128 Gb SSD +1 Tb SSD 1920x1080

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#5

11 дек 2019, 15:10

FreeStyler, да оно и на bash будет не дольше
ИзображениеИзображение

no avatar

Автор темы
pv13
Сообщения: 12
Зарегистрирован: 11 дек 2019, 10:08
Контактная информация:

FileRenamer

#6

11 дек 2019, 17:39

Нашёл вот что:

Код: Выделить всё

function Lat2ru($string)
{
$rus = array('ё','ж','ц','ч','ш','щ','ю','я','Ё','Ж','Ц','Ч','Ш','Щ','Ю','Я');
$lat = array('yo','zh','tc','ch','sh','sh','yu','ya','YO','ZH','TC','CH','SH','SH','YU','YA');
$string = str_replace($lat,$rus,$string);
$string = strtr($string,
     "ABVGDEZIJKLMNOPRSTUFH_I_Eabvgdezijklmnoprstufh_i_e",
     "АБВГДЕЗИЙКЛМНОПРСТУФХЪЫЬЭабвгдезийклмнопрстуфхъыьэ");
return($string);
}
Может кто допилить,чтобы убирались квадратные кавычки и подчёркивания?
Последний раз редактировалось пользователем 1 rogoznik; всего редактировалось раз: 11
Причина: bbcode

Аватара пользователя

WWolf
Сообщения: 4185
Зарегистрирован: 14 фев 2018, 00:51
Решено: 36
Откуда: Краснодар
Благодарил (а): 1735 раз
Поблагодарили: 1275 раз
Контактная информация:

FileRenamer

#7

11 дек 2019, 18:11

pv13,

Код: Выделить всё

$rus = array('ё','ж','ц','ч','ш','щ','ю','я','Ё','Ж','Ц','Ч','Ш','Щ','Ю','Я','_','[',']');
$lat = array('yo','zh','tc','ch','sh','sh','yu','ya','YO','ZH','TC','CH','SH','SH','YU','YA', '','','');
или наоборот... в зависимости от направления - из какого названия нужно убрать что-то, вместо него подставляешь пустой символ...
хотя могут быть нюансы с концом строки, так что наверное надо на пробелы заменять...
Последний раз редактировалось пользователем 2 WWolf; всего редактировалось раз: 11

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#8

11 дек 2019, 18:12

WWolf, :-D
ИзображениеИзображение

Аватара пользователя

FreeStyler
Сообщения: 829
Зарегистрирован: 23 июл 2018, 07:58
Решено: 7
Откуда: Сиб
Благодарил (а): 772 раза
Поблагодарили: 94 раза
Контактная информация:

FileRenamer

#9

12 дек 2019, 06:22

rogoznik, для меня дольше раз в 10... я вообще не понимаю как что-то более менее серьёзное можно на нём делать - такой вынос мозга и простыня выходит... конечно, кто на чём привык ещё, но даже на питоне у меня быстрее выйдет
deadmau5 - Harmonic Mix
■ KDE Neon 22.04 (UE) @ Lenovo IdeaPad 3-15 Ryzen 5 4500U, 18 Гб DDR-4, 128 Gb SSD +1 Tb SSD 1920x1080

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#10

12 дек 2019, 07:02

FreeStyler, в данном конкретном случае на bash, думаю, будет даже быстрее, т.к. php-cli еще нужно установить. А вот на python, наверно, так же как и на bash. Но повторюсь - это про конкретный данный случай.
ИзображениеИзображение

Аватара пользователя

FreeStyler
Сообщения: 829
Зарегистрирован: 23 июл 2018, 07:58
Решено: 7
Откуда: Сиб
Благодарил (а): 772 раза
Поблагодарили: 94 раза
Контактная информация:

FileRenamer

#11

12 дек 2019, 07:09

rogoznik, а php-cli установить это ж надо часа 3 ждать компиляции... :hm: И то если мощная машина, если слабая то все 12...
Массив символов для преобразования сам писать будешь?
Я копиписатил когда для сайта встала такая задача. Ну и работа по замене по-моему тот ещё гемор...
deadmau5 - Harmonic Mix
■ KDE Neon 22.04 (UE) @ Lenovo IdeaPad 3-15 Ryzen 5 4500U, 18 Гб DDR-4, 128 Gb SSD +1 Tb SSD 1920x1080

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#12

12 дек 2019, 07:51

FreeStyler писал(а):
12 дек 2019, 07:09
Ну и работа по замене по-моему тот ещё гемор.
Так вот уже все есть FileRenamer (Пост pv13 #90584) никакого гемора. Осталось только написать цикл перебора файлов в папке.
ИзображениеИзображение

Аватара пользователя

FreeStyler
Сообщения: 829
Зарегистрирован: 23 июл 2018, 07:58
Решено: 7
Откуда: Сиб
Благодарил (а): 772 раза
Поблагодарили: 94 раза
Контактная информация:

FileRenamer

#13

12 дек 2019, 09:28

rogoznik, дык это разве баш?😑
deadmau5 - Harmonic Mix
■ KDE Neon 22.04 (UE) @ Lenovo IdeaPad 3-15 Ryzen 5 4500U, 18 Гб DDR-4, 128 Gb SSD +1 Tb SSD 1920x1080

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#14

12 дек 2019, 09:41

FreeStyler писал(а):
12 дек 2019, 09:28
дык это разве баш?
ЫЫЫ, чет я затупил - это php :-D
ИзображениеИзображение

no avatar

Автор темы
pv13
Сообщения: 12
Зарегистрирован: 11 дек 2019, 10:08
Контактная информация:

FileRenamer

#15

12 дек 2019, 12:25

Хорошо,братья! Спасибо за понимание. А как бы допилить это:

Код: Выделить всё

#!/bin/bash
/home/vladimir/КНИГИ 2
for NAME in * ; do
# sed-ом заменяем символы латиницы на символы кирилицы
TRS=`echo $NAME | sed "y/abvgdeeziilmnopruf/абвгдеёзийлмнопруф/"`
TRS=`echo $TRS  | sed "y/ABVGDEEZIILMNOPRUF/АБВГДЕЁЗИЙЛМНОПРУФ/"`
TRS=${TRS//zh/ж};
TRS=${TRS//kh/х};
TRS=${TRS//ch/ч};
TRS=${TRS//sh/ш};
TRS=${TRS//sch/щ};
TRS=${TRS//yu/ю};
TRS=${TRS//ya/я};
TRS=${TRS//tc/ц};
TRS=${TRS//s/с};
TRS=${TRS//k/к};
TRS=${TRS//K/к};
TRS=${TRS//e/э};
TRS=${TRS//t/т};
# переименовываем
mv -v "$NAME" "$TRS"
echo $TRS | sed 's/\(.\)/\u\1/'
done
Тема та же - убрать квадратные кавычки и подчёркивания.Но разделение слов оставить.Спасибо за понимание.

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#16

12 дек 2019, 12:32

pv13, [] так же sed-ом заменяешь на пустоту

Код: Выделить всё

sed "/[]//"
А вот подчеркивания убрать оставляя разделение слов - очень нетривиальная задача
ИзображениеИзображение

no avatar

Автор темы
pv13
Сообщения: 12
Зарегистрирован: 11 дек 2019, 10:08
Контактная информация:

FileRenamer

#17

12 дек 2019, 15:12

rogoznik, Брат! А в какой строке это добавить? sed "/[]//"
В моём вермуте крови нет :-D

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#18

12 дек 2019, 18:56

pv13, можешь перед этой

Код: Выделить всё

TRS=`echo $NAME | sed "y/abvgdeeziilmnopruf/абвгдеёзийлмнопруф/"`
т.е должно получиться так

Код: Выделить всё

TRS=`echo $NAME | sed "/[]//"`
TRS=`echo $NAME | sed "y/abvgdeeziilmnopruf/абвгдеёзийлмнопруф/"`
ИзображениеИзображение

no avatar

Автор темы
pv13
Сообщения: 12
Зарегистрирован: 11 дек 2019, 10:08
Контактная информация:

FileRenamer

#19

12 дек 2019, 19:33

Брат! Тут такая ерунда вылезла. Вышеупомянутый скрипт,переписывает расширение и тип. На ноуте всё открывается,а на электронной книжке - куку. Что изменить,чтоб только "АВТОР-ИМЯ ФАЙЛА" под замену? Спасибо за понимание.

Аватара пользователя

rogoznik
Сообщения: 10436
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

FileRenamer

#20

12 дек 2019, 20:00

pv13, сделай так

Код: Выделить всё

TRS= `echo ${$NAME%.*}`
TRS=`echo $TRS | sed "/[]//"`
TRS=`echo $TRS | sed "y/abvgdeeziilmnopruf/абвгдеёзийлмнопруф/"`
ИзображениеИзображение

Закрыто

Вернуться в «Вопрос новичка и FaQ»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей