Какой рейтинг вас больше интересует?
|
Навел порядок в своей библиотеке.2017-01-22 11:44:25 (читать в оригинале)Превратил жуткую свалку fb2 и epub-файлов, в которой мог разобраться только FBReader, да и то не сразу, в более-менее структуруированное хранилище, вида перваябуква/автор/название Была еще идея насоздавать симлинков для книг с более чем одним автором, но решил пока не связываться. Большую часть работы проделал вот такой скрипт: for i in *.fb2.zip; do author="`unzip -p $i "*.fb2"| xmlstarlet sel \ -t -m "//_:title-info/_:author[1]" \ -v _:last-name -o "_" -v _:first-name -n `" title="`unzip -p $i "*.fb2"| xmlstarlet sel -t \ -v "//_:title-info/_:book-title" | tr ' ' '_'`" dir=`echo "$author"|sed 's!^\(.\)!\1/\1!'` echo "$i => $dir/${title}.fb2.zip" [ -d "$dir" ] || mkdir -p "$dir" mv $i "$dir/${title}.fb2.zip" done Скрипт, конечно наколеночный и кривой. Поддержки epub пока нет, хотя смысл там примерно unzip -p $epub_file content.opf | xmlstarlet sel -N dc=http://purl.org/dc/elements/1.1/ \ -t -v '//dc:creator[1]' -n -v //dc:title -n. Ну и еще файл сканируется дважды. Но я решил что проще это делать дважды, чем разгребаться с эскейпингом средствами xslt. О, кстати придумал как обойтись без искейпинга. Вывод xmlstarlet который пишет автора на первой строчке, а title во второй, перенаправляем в (read author read title # do what we need with author and title ). В результате внутри xmlstarlet нужно заэскейпить только ньюлайны. P.S. А если для фотографий аналогичный скрипт сделать? Чтобы валить их все в кучу, чуть ли не rsync-ом, а скрипт пусть потом разгребает по датам и местам. This entry was originally posted at http://vitus-wagner.dreamwidth.org/1869108.html. Please comment there using OpenID. Now there are comments
|
Категория «Художники»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.