Вы здесьbash: пакетное переименование fb2
Опубликовано вт, 08/07/2008 - 12:53 пользователем ground0
Переименовываем fb2 в каталогах (плюс подкаталоги), попутно проверяя xml на правильность и перекодируя в UTF-8. UPDATE: Ай-яй-яй. В прошлой версии было возможно зацикливание find'а. Поэтому складываем переименованные файлы в отдельный новый (под)каталог. Примерно так. Заодно раскидываем по подкаталогам с именем первого автора из title-info: #!/bin/bash Perl-скрипт для преобразования русских имён в транслит: #!/usr/bin/perl Те же скрипты в прицепе:
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
Aliki RE:Подайте бедному копеечку на книжку с литреса... 1 час
Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 3 дня sem14 RE:Современная корейская литература. Книжная серия... 6 дней sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 6 дней kopak RE:На 78-м году жизни скончался советский и российский... 2 недели Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 2 недели Саша из Киева RE:Подводное течение 2 недели lemma7 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 2 недели konst1 RE:Переименовать ник (имя учетки) 3 недели Larisa_F RE:Таррин Фишер 1 месяц Aleks_Sim RE:Беженцы с Флибусты 1 месяц Саша из Киева RE:Как приобретать друзей и оказывать влияние на людей 1 месяц Isais RE:Семейственность в литературе 1 месяц miri.ness_ RE:Доступ 27 1 месяц bmusanov Оплатил, но абонемент не отображается 1 месяц holla RE:Багрепорт - 2 1 месяц konst1 RE:Файнридер для Win11 1 месяц larin RE:Оплатил, но абонемент не отображается 1 месяц Впечатления о книгах
obivatel про Номен: Олегархат им. тов. Сталина (Альтернативная история, Попаданцы, Самиздат, сетевая литература)
24 09 Немного более сильно напрягает использование автором оборотов со словом "более". Если таким образом перефразировать т.Сталина, получится нечто типа "Жить стало более хорошо, жить стало более радостно". Надо полагать, автор ……… Оценка: неплохо
Никос Костакис про Конторович: За Державу обидно! [litres] (Альтернативная история, Боевая фантастика)
22 09 – Куда б ему деваться-то? Стонал, что твой Плюшкин! Гость вопросительно приподнял бровь. – Есть у нас такой литературный персонаж – патологически жадный и неопрятный тип, ростовщик! ___________________________________ Плюшкин - ростовщик??? Я впечатлен!
Barbud про Горнов: Ульян едет в Крым (Социальная фантастика)
22 09 Ерунда какая-то несусветная, ни о чем вообще. Начал читать, одолел чуток, честно пытаясь вчитаться - вообще не понял, зачем и о чем оно написано. Проскроллил дальше - там не лучше. Ниасилил, в общем. Оценка: нечитаемо
mysevra про Ночкин: Череп мутанта (Боевая фантастика)
22 09 О, эта часть более динамична, чем первая. И обложка красивая. Оценка: хорошо
mysevra про Подшибякин: Голодный мир [litres] (Ужасы, Мистика)
22 09 Во-первых, надоел мат, просто утомил, это уже не оригинально. Во-вторых, если вдуматься и представить себе всё это, то да, жутко, но персонажи такие отвратные, что как бы ждешь, чтобы их поскорее перемололо. И впечатление ……… Оценка: неплохо
mysevra про Нин: Генри и Джун (Эротика)
22 09 Жить в праздности, не заботиться ни о чём, кроме как о «раскрепощении и освобождении чувственности» - это так мило и восхитительно, что злит неимоверно. Злит даже не то, чем забита голова главной героини в то время, как другие ……… Оценка: плохо
obivatel про Номен: Внучь олегарха (Альтернативная история, Попаданцы, Самиздат, сетевая литература)
21 09 Мне очень понравилось. Почитал комментарии и лишний раз убедился, что на вкус и цвет фломастеры разные. . И я к пятой главе понял, что за телеграмма пошла вначале сюжета. Хороший дедулька у бабушки был; жаль, что в ……… Оценка: отлично!
obivatel про Гросов: Инженер Петра Великого – 2 (Альтернативная история, Исторические приключения, Попаданцы, Самиздат, сетевая литература)
20 09 В общем, устал я читать этот бред. Автор не понимает простейших вещей и у меня большие сомнения, что он инженер: слишком много пробелов в знаниях. Эх, а ведь там аж куча томов, читать-не-перечитать. Но не для меня эта ягодка... волчья. Оценка: нечитаемо
obivatel про Гросов: Инженер Петра Великого – 1 (Альтернативная история, Исторические приключения, Попаданцы, Самиздат, сетевая литература)
19 09 Пока автор писал про плавку, про станки и инструмент, всё было гут. Но зачем он начал писать про военку, если ВООБЩЕ ничего не понимает? Проблема стрельбы круглым объектом из гладкоствола в неконтролируемом вращении снаряда ……… Оценка: плохо
obivatel про Жизнь Лекаря с нуля
18 09 Написано хорошим слогом, читать приятно. . Много логических противоречий, которые цепляют и раздражают; -- некоторые противоречия необходимы для "логики мира", но она от этого сильно прихрамывает; -- некоторые, ………
alexk про Шпаковский: Читающее Средневековье [litres] (Исторические приключения, История)
17 09 С картинками какая-то беда. То не те, то не там, то дубли...
Думает про Крашенинников: Наследники или ренегаты. Государство и право «оттепели» 1953-1964 [litres] (Политика, Юриспруденция)
17 09 Все романтики сгорели в сталинских лагерях. А те, что смогли оттуда выйти после войны - уже не были романтиками. Показателен в этом смысле кейс человека и его семьи, который укрывал Ленина в Финляндии (знаменитый шалаш в ……… |
||||||
Комментарии
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.