Вы здесьbash: пакетное переименование fb2
Опубликовано вт, 08/07/2008 - 12:53 пользователем ground0
Переименовываем fb2 в каталогах (плюс подкаталоги), попутно проверяя xml на правильность и перекодируя в UTF-8. UPDATE: Ай-яй-яй. В прошлой версии было возможно зацикливание find'а. Поэтому складываем переименованные файлы в отдельный новый (под)каталог. Примерно так. Заодно раскидываем по подкаталогам с именем первого автора из title-info: #!/bin/bashPerl-скрипт для преобразования русских имён в транслит: #!/usr/bin/perlТе же скрипты в прицепе:
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
Aliki RE:Подайте бедному копеечку на книжку с литреса... 20 часов
weis RE:Прошу переформатировать, распознать, etc... 2 недели larin RE:Заплатила, а абонемента нет и скачать ничего не могу! 4 недели sibkron RE:Серия "Библиотека французской литературы" (Макбел) 1 месяц akorish RE:Регистрация 1 месяц Tramell RE:Серия "Очень прикольная книга", издательство Азбука-классика 1 месяц Larisa_F RE:Серия "Я познаю мир" издательства "АСТ, Астрель, Олимп",... 1 месяц konst1 RE:Ух, как я не люблю спамеров! 1 месяц tvv RE:DNS 2 месяца sem14 RE:«Не забыть бы тогда, не простить бы и не потерять!»-2 ... 2 месяца larin RE:Заблокирован 2 месяца konst1 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 3 месяца Larisa_F RE:Серия книг «Судьбы книг» издательства «Книга» 3 месяца fixel RE:Пропал абонемент 3 месяца sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 4 месяца sibkron RE:"100 славянских романов", серия изд.-ва "Центр книги... 4 месяца Larisa_F RE:Серия "Новые сказочные повести" издательство "Самовар" ... 5 месяцев sem14 RE:Серия "Символы времени" издательства "Аграф" 5 месяцев Впечатления о книгах
udrees про Михайлов: Пепел доверия-3 (Боевая фантастика, Ужасы, Постапокалипсис, Самиздат, сетевая литература)
28 06 Отличная третья книга из серии про зомбиапокалипсис, хотя конечно там не совсем зомби. Но такого описания конца света в стиле «зомби» и таких противников мне еще не встречалось. Слишком сильных, быстрых, пока не умных и многочисленных. ……… Оценка: отлично!
udrees про Атаманов: Стратег из ниоткуда. Книга третья (Героическая фантастика, Фэнтези, Самиздат, сетевая литература)
28 06 Все отлично. Написано просто, живо, увлекательно. Персонажи тоже яркие и уникальные, как люди, так и нелюди. Предоставленные герою умения оказываются очень полезными в схватке с главными противниками, фактически, помогают ……… Оценка: отлично!
udrees про Каменистый: Рунный практик (Боевая фантастика, Фэнтези, Попаданцы, ЛитРПГ)
28 06 Прекрасное продолжение. Конечно это приключение, где у главного героя все получается, все срабатывает в нужный момент, и как у Бэтмена, для подходящего случая всегда припасен нужный гаджет в кармане, очень кстати оказавшийся ……… Оценка: отлично!
udrees про Мантикор: Тьма в отражении (Боевая фантастика, Технофэнтези, ЛитРПГ, Самиздат, сетевая литература)
28 06 Автор продолжает свое повествование, правда вся книга будет скорее не про путь вниз, а наверх и вбок. Все написано в том же стиле, увлекательно с описанием новых мест и монстров. Глав с перечислением характеристик всех героев ……… Оценка: отлично!
udrees про Мантикор: Истинный враг (Боевая фантастика, Технофэнтези, ЛитРПГ, Самиздат, сетевая литература)
28 06 Продолжение увлекательное, стиль повествования все такой же, но на сей раз действий больше, чем разговоров. Отряд героя продолжает спуск по Стене, и сейчас каждый уровень является обиталищем самых опасных монстров. Но как ……… Оценка: отлично!
trampak про Мясников: Великая Отечественная. 10 000 фактов о войне (История)
27 06 Россия никогда не начинает войн, она их завершает."- эта лживая фраза ставит под сомнение , что автор историк. А кто соврал однажды... Оценка: нечитаемо
Paul von Sokolovski про Логинов: Свет в окошке (Социальная фантастика)
27 06 Очень хорошая, тяжёлая и светлая книжка. То, что все знают - мы живы, пока о нас помнят... у Логинова получает некоторое материальное (?) воплощение. Как быстро мы развеемся? И кто будет помнить нас? Читать, или хотя бы пробовать - всем, всем, всем.
Олег Макаров. про Борчанинов: Лейтенант космического флота [СИ] (Боевая фантастика, Космическая фантастика, Самиздат, сетевая литература)
26 06 Написано хорошо, но не захватывает. Шаблонное космооперное начало. Бросил Оценка: плохо
Олег Макаров. про Иванов: Псоглавцы (Социальная фантастика, Ужасы, Триллер)
26 06 Прочитал. такое впечатление, как в детстве, когда тебе обещали что-то а потом формально выполнили, но радости никакой это не доставило. Не знаю, как по-другому объяснить Оценка: плохо
Олег Макаров. про Смолин: Морпех 1: Сухой Лиман (Альтернативная история, Боевик, Самиздат, сетевая литература)
26 06 Не могу такое читать; опять «герой сво» попадает в 1941 и там становится прям вообще героем Оценка: нечитаемо
Олег Макаров. про Сухов: Обнуленный [СИ] (Боевая фантастика, Космическая фантастика, Попаданцы, Самиздат, сетевая литература)
26 06 Идея возможно интересная, но пишет предельно занудно. Оценка: нечитаемо
Олег Макаров. про Ростов: Выжившие (Боевая фантастика, Постапокалипсис, Самиздат, сетевая литература)
26 06 Картонные герои, бумажные диалоги. Оценка: плохо |
||||||
Комментарии
Re: bash: пакетное переименование fb2
Эээ....У меня не хватит опыта всё это повторить...
А есть какой-то GUI-вариант?..
Re: bash: пакетное переименование fb2
Я не интересовался.
Мне удобнее CL.
Re: bash: пакетное переименование fb2
2ground0 и остальным.
А нет ли у вас скрипта проверяющего парность
< p> ... </p>и при ее отстутствии исправляющим fb2 файл.Например,
<p> ... <p> ... </p> -> <p> ... </p>.Если такового нет, м.б. кто-нибудь напишет на perle. У меня хорошо написать не получилось. Думаю такой скрипт будет полезен не только мне.
Re: bash: пакетное переименование fb2
Ещё один велосипед? xmllint все теги проверяет, <p> в том числе. И обнаруженные ошибки показывает, причём с номерами строк. (Ежели интегрировать в vim, вообще песня.)
А автоматическое исправление есть зло.
Re: bash: пакетное переименование fb2
Так кто мешает посмотреть результат автоматического исправлениия при помощи указанных вами средств. А непарные
<p>...</p>- очень характерная ошибка, хотелось бы ее исправлять автоматически..Есть ли аналог xmllint в windows? Хотелось бы его интегрировать в emeditor.
2SlaNT - спасибо за скрипт.
Re: bash: пакетное переименование fb2
Есть вроде сборка для windows (а чего сейчас нет?): http://www.zlatkovic.com/pub/libxml/ . Пакет libxml2. vim для windows можно взять на офсайте: http://www.vim.org/download.php#pc , - если что.
Схемы для FB2 можно взять на www.fictionbook.org, можно и без схем, просто как xml проверять.
Re: bash: пакетное переименование fb2
Очередное проприетарное говноподелие с собственным макросным недоязычком?
Re: bash: пакетное переименование fb2
Очередной линуксоид с марса?
Re: bash: пакетное переименование fb2
Да linuxoid , хочу на марс , ищу спонсоров на 8*10^10$ , категорически не понимаю пользовательского нутряного хамства. Человек по своей инициантиве пишет , раздает исходники чтобы вы смогли их приспособить по надобности ,А быдло кричит : ХОчУ чтоб работало под моей программой х. Причем автор ищи прогу , покупай её или нарушай закон ,но подай на тарелочке сегодня . Одно слово - пишите сами или гоните бабки.
Под Pspad И MEDIT СКРИПТ ПОДГОНЯЕТСЯ ЗАМЕНОЙ ОДНОЙ СТРОЧКИ
find "$@" -type f -name "*.fb2" | \
заменяется на
echo "$1" | \
Далее см документацию редактора по подвешиванию скрипта
Для medit
homepage - http://mooedit.sourceforge.net/
Re: bash: пакетное переименование fb2
Очередное говноподелие с собственным макросным недоязычком? =1
Re: bash: пакетное переименование fb2
Ну я писал про Emeditor - он получше будет чем medit.
Спасибо всем за ответы на мои вопросы.
Лучшее, что пока удалось сделать это интегрировать xmllint в PSPAD (путем компиляции текста - cntrlF9). Однако, не получается переход (по клику на сообщение об ошибке окошке log) на строчку с ошибкой в основном окне, чего бы очень хотелось. У кого нибудь это работает?
Re: bash: пакетное переименование fb2
В виме работает: set errorformat=%f:%l:\ %m
Re: bash: пакетное переименование fb2
Да вим штука замечательная.
Изначально я его и попробовал (gvim 7.1) , но не показывает (зараза) UTF-8 файлов - зюки (с 1251 - все нормально).
Не смог пока эти зюки победить.
Re: bash: пакетное переименование fb2
А ты его открой в нужной кодировке:
:e ++enc=utf8
Re: bash: пакетное переименование fb2
не в тот пост написал
Re: bash: пакетное переименование fb2
>В виме работает: set errorformat=%f:%l:\ %m
Да вим штука замечательная.
Изначально я его и попробовал (gvim 7.1) , но не показывает (зараза) UTF-8 файлов - зюки (с 1251 - все нормально).
Не смог пока эти зюки победить.
Re: bash: пакетное переименование fb2
Насколько мне помнится, надо просто сменить шрифт.
:help guifont
Re: bash: пакетное переименование fb2
Или же вим не определяет кодировку.
:e ++enc=utf8
set fileencodings=utf8,cp1251 в ~/.vimrc.
(Чё-то жоско глючит кэширование на либрусеке, сцуко.)
Re: bash: пакетное переименование fb2
Re: bash: пакетное переименование fb2
Я не совсем про это.
Иногда страницы отображаются не полностью, остаётся от всей темы, скажем, один заголовок. Дальше - обрыв хтмля. (Не до конца преобразуется вики-разметка, что ли?)
Обновление страницы здесь не очень помогает.
А "сохранять" два раза я не жму, ага, научился уже.
Re: bash: пакетное переименование fb2
Спасибо получилось - нужно вставить в vimrc set encoding=utf-8.
А вот xmllint не заработало:
после компиляции сообщение:
!xmmlint --valid --nooout >D:\DOCUME~\Admin\LOCALS~1\Temp\VIeB0.tmp 2 >&1
В указанной директории файл VIeB0.tmp не создается.
Re: bash: пакетное переименование fb2
За что на Python так ополчились ?
Re: bash: пакетное переименование fb2
Ну наверное такое решение только для фанатов vim :)
Мой вариант проще :) http://lib.rus.ec/node/101686
Отв: bash: пакетное переименование fb2
В первом скрипте рекомендую дополнить команду, устанавливающую title, командой sed так: title=`2csv < $tempfile2 title-info book-title | head -n 1 | sed 's/^"\(.*\)"$/\1/'`
чтобы кавычки, которыми обрамляются сложные текстовые строки в csv (напрпример, содержащие запятую) правильно удалялись. Кажется, ru2tr не удаляет кавычки, не проверял, ибо транслит мне не нужен.
Ваш блог отличный, а за этот пост со скриптами особенное спасибо.
Отв: bash: пакетное переименование fb2
Удаляет. Но если через него не пускать, не помешает, согласен. Вместе с другими спецсимволами, типа слэша.
На здоровье.
Отв: bash: пакетное переименование fb2
Вопрос: насколько этот транслит похож на Альдебарановский/Литресовский? А то мне тут понадобилось для fb2-file renamer-а, хочется чтобы близко к существующим было. (я на Перле пишу, но не перловкой, а как будто родным-любимым, только покалеченным, C пользуюсь - перловые идиомы ненавижу и рзбираться в них не хочу и не буду, ни-за-что, разве что за деньги)
Отв: bash: пакетное переименование fb2
Скрипт был утянут отсюда. Не знаю как с альдом/литресом, а на либрусековский не похож.
Вот ф-я на PHP из librusec.rar:
function translitcyr($cyr_str) {$transtbl = array("Ґ"=>"G","Ё"=>"Yo","Є"=>"E","Ї"=>"Yi","І"=>"I",
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"N","є"=>"e",
"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"Zh","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"Ts","Ч"=>"Ch",
"Ш"=>"Sh","Щ"=>"Sch","Ъ"=>"","Ы"=>"Yi","Ь"=>"",
"Э"=>"E","Ю"=>"Yu","Я"=>"Ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=>'_', '"'=>'', "'"=>'',":"=>'', "("=>'_',")"=>'_',"["=>'_',"]"=>'_',"{"=>'_',"}"=>'_',
'ў'=>'y', '…' => '.', '!'=>'','“'=>'','”'=>'', '`'=>'', '—'=>'-',
'?'=>'',','=>'','\''=>'','«'=>'','»'=>'', '&'=>'_', '#' => 'N');
return str_replace('__','_', strtr($cyr_str, $transtbl));
}
Отв: bash: пакетное переименование fb2
а ведь неверное преобразование =((
ГОСТ 7.79:2000 для транслита
Крайний: ГОСТ 7.79:2000 "Система стандартов по информации, библиотечному и издательскому делу. Правила транслитерации кирилловского письма латинским алфавитом."
#!/usr/bin/python -O
# -*- coding: utf-8 -*-
_Translit = { # GOST 7.79-2000
u"а":"a", u"А":"A",
u"б":"b", u"Б":"B",
u"в":"v", u"В":"V",
u"г":"g", u"Г":"G",
u"д":"d", u"Д":"D",
u"е":"e", u"Е":"E",
u"ё":"jo", u"Ё":"Jo",
u"ж":"zh", u"Ж":"Zh",
u"з":"z", u"З":"Z",
u"и":"i", u"И":"I",
u"й":"jj", u"Й":"Jj",
u"к":"k", u"К":"K",
u"л":"l", u"Л":"L",
u"м":"m", u"М":"M",
u"н":"n", u"Н":"N",
u"о":"o", u"О":"O",
u"п":"p", u"П":"P",
u"р":"r", u"Р":"R",
u"с":"s", u"С":"S",
u"т":"t", u"Т":"T",
u"у":"u", u"У":"U",
u"ф":"f", u"Ф":"F",
u"х":"kh", u"Х":"Kh",
u"ц":"c", u"Ц":"C",
u"ч":"ch", u"Ч":"Ch",
u"ш":"sh", u"Ш":"Sh",
u"щ":"shh", u"Щ":"Shh",
u"ъ":"''", u"Ъ":"''",
u"ы":"y", u"Ы":"Y",
u"ь":"'", u"Ь":"'",
u"э":"eh", u"Э":"Eh",
u"ю":"ju", u"Ю":"Ju",
u"я":"ja", u"Я":"Ja",
}
def translit(s): return ''.join([_Translit.get(c,c) for c in s])
Отв: bash: пакетное переименование fb2
Спасибо за скрипт.
В Ubuntu 10.10 для работы fb2_renamer.sh предварительно нужно установить пакет xml2.