Страница 2 из 2
FileRenamer
Добавлено: 12 дек 2019, 21:01
pv13
Брат! На выходе - вот:
bash: ${$NAME%.*}: неверная подстановка
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить '[Vandal_Albert]_Vtoroi_brak_Napoleona._Upadok_soyu(z-lib.org).fb2.zip' в '': Нет такого файла или каталога
bash: ${$NAME%.*}: неверная подстановка
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить 'ИСХОДНИК' в '': Нет такого файла или каталога
bash: ${$NAME%.*}: неверная подстановка
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить 'Пустой документ 4' в '': Нет такого файла или каталога

FileRenamer
Добавлено: 12 дек 2019, 21:29
rogoznik
FileRenamer
Добавлено: 13 дек 2019, 10:14
pv13
Брат, как то так:
[Vandal_Albert]_Vtoroi_brak_Napoleona._Upadok_soyu(z-lib.org).fb2: команда не найдена
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить '[Vandal_Albert]_Vtoroi_brak_Napoleona._Upadok_soyu(z-lib.org).fb2.zip' в '': Нет такого файла или каталога
ИСХОДНИК: команда не найдена
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить 'ИСХОДНИК' в '': Нет такого файла или каталога
Пустой: команда не найдена
sed: -e выражение #1, символ 5: незавершенное адресное регулярное выражение
mv: невозможно переместить 'Пустой документ 4' в '': Нет такого файла или каталога
FileRenamer
Добавлено: 13 дек 2019, 10:48
rogoznik
pv13,
Код: Выделить всё
#!/bin/bash
cd "/home/vladimir/КНИГИ 2"
for NAME in * ; do
# sed-ом заменяем символы латиницы на символы кирилицы
ext=`echo ${NAME#*.}`
TRS=`echo ${NAME%.*}`
TRS=`echo $TRS | sed -e "s/[][]//g"`
TRS=`echo $TRS | 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/т};
TRS=`echo "$TRS.$ext"`
# переименовываем
mv -v "$NAME" "$TRS"
echo $TRS | sed 's/\(.\)/\u\1/'
done
FileRenamer
Добавлено: 13 дек 2019, 13:39
pv13

Брат! Уже лучше! Вот пример работы скрипта:
Вандал_Алберт_Второи_брак_Наполеона._Упадок_соyу(з-либ.орг).фб2._Upadok_soyu(z-lib.org).fb2.zip
FileRenamer
Добавлено: 13 дек 2019, 13:41
pv13
Спасибо!

FileRenamer
Добавлено: 13 дек 2019, 14:13
rogoznik
pv13, ты же не показывал примеры названий файлов
FileRenamer
Добавлено: 13 дек 2019, 16:39
pv13
Примеры файлов:
[Raz_Rustam]_Moya_zhizn_ryadom_s_Napoleonom(z-lib.org).fb2.zip
Это т.сказать сложный. Остальные проще.

FileRenamer
Добавлено: 13 дек 2019, 17:10
rogoznik
pv13,
Код: Выделить всё
#!/bin/bash
cd "/home/vladimir/КНИГИ 2"
for NAME in * ; do
# sed-ом заменяем символы латиницы на символы кирилицы
ext=".fb2.zip"
n=`echo ${NAME%$ext}`
TRS=${n//zh/ж};
TRS=${TRS//kh/х};
TRS=${TRS//ch/ч};
TRS=${TRS//sh/ш};
TRS=${TRS//sch/щ};
TRS=${TRS//yu/ю};
TRS=${TRS//ya/я};
TRS=${TRS//tc/ц};
TRS=`echo $TRS | sed -e "s/[][]//g"`
TRS=`echo $TRS | sed "y/abvgdezilmnoprufstk/абвгдезилмнопруфстк/"`
TRS=`echo $TRS | sed "y/ABVGDEZILMNOPRUFSTK/АБВГДЕЗИЛМНОПРУФСТК/"`
TRS=`echo "$TRS$ext"`
# переименовываем
mv -v "$NAME" "$TRS"
echo $TRS | sed 's/\(.\)/\u\1/'
done
Так должно получиться
FileRenamer
Добавлено: 13 дек 2019, 19:46
pv13
Брат спасибо. Всё работает. Но почему то все расширения перебиваются на fb2,
Пример:
[Dominik_de_La-Fliz]_Pohod_Napoleona_v_Rossiyu_v_1(z-lib.org).pdf
Получаем:
Доминик_де_Ла-Флиз_Поhод_Наполеона_в_Россию_в_1(з-либ.орг).пдф.fb2.zip
Да ещё и "zip". Такое не открывается.
FileRenamer
Добавлено: 13 дек 2019, 19:58
rogoznik
pv13, потому что думать надо. Рабочий код у тебя есть. Если мозги на месте поймешь что сделать надо
FileRenamer
Добавлено: 13 дек 2019, 20:28
pv13
Понял.Спасибо.