2014-04-24

bash epub cleaner

Подивився літературу, яка була на книжці. Там все у epub і розмір безпосередньо тексту навіть з урахуванням того, що він ще й html, у найкращому випадку у розпакованому вигляді не дотягує навіть до половини вмісту. На ілюстрації текст зелений, один з найгірших випадків. Більше половини - шрифти і cover.jpg



Тож дописав цей скрипт для себе http://odoepner.wordpress.com/2011/10/08/bash-script-to-remove-css-from-epub/

#!/bin/bash
tmpfs_dir="/tmp/"

file=$1

if [[ $file != *.epub ]]
then
  echo "Usage: $(basename $0) something.epub"
  exit 0
fi

filebasename="$(basename "$file" .epub)"
location="$(dirname "`readlink -f "$file"`")/"
echo $location$filebasename
mkdir "$tmpfs_dir$filebasename"
unzip -d "$tmpfs_dir$filebasename" "$file" > /dev/null # < /dev/zero

find "$tmpfs_dir$filebasename" -iname *.css -exec rm {} \;
find "$tmpfs_dir$filebasename" -iname *.otf -exec rm {} \;
find "$tmpfs_dir$filebasename" -iname *.ttf -exec rm {} \;
find "$tmpfs_dir$filebasename" -iname cover.jpg -exec rm {} \;

cd "$tmpfs_dir$filebasename"
zip -r "$location${filebasename}_clean.epub" .
cd "$location"
rm -rf "$tmpfs_dir$filebasename"
Один запуск
 $ find . -iname *.epub -exec bash ~/bin/optimize/epub_cleaner.sh "{}" \;
зменшив розмір каталогу з 300 до 80 МіБ.