Вы здесьbash: пакетное переименование fb2
      Опубликовано вт, 08/07/2008 - 12:53 пользователем ground0     
  
  
 Переименовываем fb2 в каталогах (плюс подкаталоги), попутно проверяя xml на правильность и перекодируя в UTF-8. UPDATE: Ай-яй-яй. В прошлой версии было возможно зацикливание find'а. Поэтому складываем переименованные файлы в отдельный новый (под)каталог. Примерно так. Заодно раскидываем по подкаталогам с именем первого автора из title-info: #!/bin/bashPerl-скрипт для преобразования русских имён в транслит: #!/usr/bin/perlТе же скрипты в прицепе: 
  | 
  
   Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
      alex-from RE:Оплатил два раза, но абонемента нет 12 часов 
  babajga RE:Приключения белочки Рыжки 15 часов sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 1 день Kiesza RE:На 78-м году жизни скончался советский и российский... 1 день Aliki RE:Подайте бедному копеечку на книжку с литреса... 1 день Paul von Sokolovski RE:Бушков умер. 1 неделя lemma7 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 1 неделя mig2009 RE:Багрепорт - 2 2 недели Isais RE:Издательство "Медуза" 2 недели babajga RE:Народные сказки - Сказки народов Сибири = Fairy-Tales of... 3 недели Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 4 недели sibkron RE:Серия "Библиотека французской литературы" (Макбел) 4 недели Isais RE:Игорь Северянин - Том 2. Поэзоантракт 1 месяц sem14 RE:Современная корейская литература. Книжная серия... 1 месяц sem14 RE:Семейственность в литературе 1 месяц Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 1 месяц Саша из Киева RE:Подводное течение 1 месяц konst1 RE:Переименовать ник (имя учетки) 2 месяца Впечатления о книгах
Lena Stol про Искаженный мир
04 11 Прочитала обе книги, пропускала много, особенно во второй части, хороший сюжет, но уж очень автор растянул. Если из двух книг сделать одну, будет интереснее. 
udrees про Михеенков: Маргелов (Биографии и Мемуары)
04 11 В книге встречаются интересные упоминания, например про новобранцев с Западной Украины, «командиры были им не рады», они ненавидели оба режима, были коллаборантами, вообще удивительно, как они воевали в рядах Красной Армии, ……… Оценка: неплохо 
udrees про Вальтер: Реквием [СИ litres] (Боевая фантастика, Социальная фантастика, Приключения: прочее, Самиздат, сетевая литература)
04 11 Вот и завершилась история четверки отморозков, что портили воздух после начала Армагеддона. Таких отбитых персонажей еще надо поискать, но у автора есть еще похожие циклы произведений с таким же отребьем в роли главных героев. Книга ……… Оценка: неплохо 
udrees про Келли: Сатана. Биография (История, Религиоведение, Религия)
04 11 Просто какая-то религиозная муть, что я могу сказать про эту книгу. Автор конечно проделал большую работу, достойную кандидатской или даже докторской диссертации, изучил множество источников, анализировал, сопоставлял, делал ……… Оценка: плохо 
udrees про Мантикор: Город, которого нет 2 [СИ] (Фэнтези, Самиздат, сетевая литература)
04 11 Книга все больше начинает напоминать серию книг автора – Покоривший Стену. По крайней мере начинаешь встречать знакомую терминологию – энергет, изнанка, пустотная магия, мертвая магия, цветы эдельвейс, артефакты некоторые. ……… Оценка: отлично! 
udrees про Мантикор: Город, которого нет (СИ) (Фэнтези, Самиздат, сетевая литература)
04 11 Первая книга серия захватывает с первых страниц, потому что без предисловий герой, как и в серии книг из Покоривший Стену, просыпается уже в новом мире, в новой Игре. Так что амнезия на старте и изучение непонятного мира, ……… Оценка: отлично! 
Belomor.canal про Маттиоли: Темные финансы. Неликвидность и авторитаризм на окраинах Европы [Dark Finance: Illiquidity and Authoritarianism at the Margins of Europe ru] (История, Экономика)
03 11 Впечатляет, что смогли провернуть шустрые македонцы, вместе с евродепутатами! "Скопье 2014" - евро откаты и как это делается в развитой демократии. Оценка: отлично! 
Sello про Эшноз: Высокие блондинки [Les grandes blondes ru] (Иронический детектив)
03 11 Разве только что за неимением под рукой другой книги, более приемлемой для чтения, сойдет. Оценка: неплохо 
mysevra про Мессинг: Магия моего мозга. Откровения «личного телепата Сталина» [litres] (Биографии и Мемуары, Эзотерика)
02 11 Я, как тот кот, «чё-то сомневаюсь» в подлинности дневников, но прочитала в целом с интересом. Оценка: хорошо 
mysevra про Ливергант: Пэлем Гренвилл Вудхаус. О пользе оптимизма (Биографии и Мемуары, Литературоведение)
02 11 Удивительный человек. Эрудированный, работоспособный. Британская дисциплина и незаурядный талант в одном флаконе. Тем паче поражает дивное сочетание умения зарабатывать деньги и странной непрактичности, словно оторванности от реального мира. Оценка: отлично! 
mysevra про Перцефф: Гиперболоид смерти. Психотронное оружие в действии (Публицистика)
02 11 Ох уж этот «тонкий» привкус пропаганды и двойные стандарты. Редкостное лицемерие, небрежно упакованное в обёртку заботы о ближнем. Оценка: плохо 
Олег Макаров. про Олигарх
02 11 «...питерский мужик, но очень большой любитель истории, особенно родного Севастополя...» так я не понял, мужик-то питерский или севастопольский?  | 
  
  ||||||
Комментарии
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.