Вы здесьbash: пакетное переименование fb2
Опубликовано вт, 08/07/2008 - 12:53 пользователем ground0
Переименовываем fb2 в каталогах (плюс подкаталоги), попутно проверяя xml на правильность и перекодируя в UTF-8. UPDATE: Ай-яй-яй. В прошлой версии было возможно зацикливание find'а. Поэтому складываем переименованные файлы в отдельный новый (под)каталог. Примерно так. Заодно раскидываем по подкаталогам с именем первого автора из title-info: #!/bin/bash Perl-скрипт для преобразования русских имён в транслит: #!/usr/bin/perl Те же скрипты в прицепе:
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
konst1 RE:Подайте бедному копеечку на книжку с литреса... 56 мин.
nehug@cheaphub.net RE:Доступ 27 5 часов kopak RE:Беженцы с Флибусты 1 день Isais RE:Вадим Иванович Туманов - Всё потерять - и вновь начать с... 2 дня Isais RE:Семейственность в литературе 5 дней Isais RE:Древний Рим. Подборка книг 5 дней Саша из Киева RE:"Экс" и "нео": разноликие правые 1 неделя medved RE:Предупреждение: "зеркала" флибусты 2 недели Isais RE:Соседи 3 недели babajga RE:Как сова отправилась в отпуск 3 недели Саша из Киева RE:Горящие паруса 1 месяц Саша из Киева RE:Подвиг героев - судьба страны. МНР: люди и годы 1 месяц commodore RE:Письма 1 месяц Саша из Киева RE:Три минуты истории 1 месяц nehug@cheaphub.net RE:Как бы с этим побороться и побороть? 1 месяц Саша из Киева RE:Книги на латышском языке 2 месяца stevecepera RE:Список современных французских писателей? 2 месяца etorus2008 RE:Отв: Помогите найти книгу по описанию 2 месяца Впечатления о книгах
udrees про Вальтер: Симбиоз [СИ litres] (Боевая фантастика, Научная фантастика, Постапокалипсис, Самиздат, сетевая литература)
19 07 Книга конечно не для широкого чтения, написана в очень вульгарном стиле про похождения четверки полных отморозков – наркоманов, алкоголиков, шлюх, дегенератов – в мире пост-апокалипсиса. Но единственное они обладают сверх-способностями, ……… Оценка: неплохо
udrees про Циммер: Планета вирусов (Биология, Научпоп)
19 07 Может это особенность присущая вирусам или сама книга получилась такая, но мне больше понравилась книга Циммера про паразитов, там он развернулся достаточно широко. Про вирусов конечно он тоже в книге описал достаточно популярно ……… Оценка: хорошо
udrees про Циммер: Паразит – царь природы [Тайный мир самых опасных существ на Земле] [litres] (Медицина, Научная литература: прочее)
19 07 Очень познавательная книга про паразитов. При всем своем отвращении к этим животным, прочел книгу со смесью удовольствия и ужаса. В общем-то полезно было узнать про их роль в природе и их способности к выживанию. Была отсылка ……… Оценка: отлично!
udrees про Лей: Инвазия (Космическая фантастика, Самиздат, сетевая литература)
19 07 Интересные приключения наемника в космосе. Можете считать, что это тот же сюжет про Чужого или Чужих в космосе, где доблестный космодесантник вступает с ними в борьбу практически в одиночку. Так что сюжет понятен. Даже созвучно ……… Оценка: хорошо
udrees про @asya.knows: Неприглядная история. Как жили, любили и болели в разные эпохи [litres] (История, Медицина)
19 07 высер это просто. Проходная книжонка, написанная наверное по вольным переводам других книг или источникам, надерганным как попало из интернета или других похожих книг, и периодических изданий. Посвящена в основном жизни ……… Оценка: плохо
udrees про Вальтер: Жажда. Max Pro [СИ] (Боевая фантастика, Приключения: прочее, Постапокалипсис, Самиздат, сетевая литература)
19 07 Повествование продолжается от лица «сына» Морзе – Макса. Стиль сохраняется все тот же. Интриги все так же плетутся вокруг него, добавляется новых забот. Разговоры тоже описаны максимально просто, сленг дворовый у всех поголовно ……… Оценка: хорошо
udrees про Вальтер: Жажда. Max [СИ] (Боевая фантастика, Приключения: прочее, Постапокалипсис, Самиздат, сетевая литература)
19 07 Автор решил видимо поменять героев в серии. Если первые три книги героем был Морзе, ставший главнокомандующим, то теперь в 4-й книге повествование уже идет от лица его «сына» Макса, который занят его поисками. Всю книгу он ……… Оценка: хорошо
tvnic про Нестеренко: Донбасский меридиан (Современная проза, О войне)
19 07 Сегодня явно ожидается неслабый вброс пропаганды по поводу оправдания войны в Украине. В том числе пудра для детей. Оценка: нечитаемо
decim про Райан: Песнь крови [Blood Song ru] (Героическая фантастика, Фэнтези)
18 07 Отлично как для фэнтези, а для книги вообще просто хорошо. Перевод приличный. Оценка: отлично!
Barbud про Лео: Сделай что сможешь. Развивая успех (Альтернативная история, Исторические приключения, Попаданцы, Самиздат, сетевая литература)
17 07 Все по-прежнему. ГГ, несмотря на мальчишеское тело, непомерно крут - ворочает огроменными деньжищами, в стрельбе побеждает офицеров, из незнакомого лука навскидку попадает по заказу куда просят, предприниматели, военные и ……… Оценка: неплохо
Лысенко Владимир Андреевич про Ераносян: Доброволец (Альтернативная история, Боевик)
17 07 Нет не сюжета, все свалено в одну кучу. Оценка: нечитаемо
voronin345 про Ераносян: Доброволец (Альтернативная история, Боевик)
17 07 один бандюк супротив другога бандюка....прелесть!!! Оценка: нечитаемо |
||||||
Комментарии
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.