fb2 в консоли

fb2 to txt | fb2 в консоли

Навеело тут беседой на ЛОРе и результатом этой беседы в виде башскрипта от топикстартера для чтения fb2 в консоли.

Нужность оригинального скрипта с которого начался топик при наличии xsltproc FB2_2_txt.xsl я обсуждать не буду, а вот от bash скрита родившегося у ТС в результате немного бомбит

  • скрипт используя zcat зачем-то проверяет архив ли это (у zcat есть опция -f, жаль у zless такого нет)
  • скрипт игнорирует кодировку файлов, хотя во времена когда почти везде utf8 сие не грех
  • оформлено всё цивильненько, аж с маном, лицензией, ченджлогом и файлом версии, проверками всякими, хелапами… хотя суть всего скрипта сводиться к sed

При таком хорошем оформлении сам скрипт мне не понравился, ну нафига столько городить ради однострочника? В итоге у меня появилась такая функция

# сама фунция
fb2read() {
  zcat -f $1| sed -r 's/<body>/\n&\n/;s/<\/body>/\n&\n/;1,/<body>/d;/<\/body>/,$d;s/<[^>]+>//g;/^[[:space:]]*$/d'|enca -c 2>/dev/null
}
# использовать как
fb2read file.fb2[.zip|.gz] | [most|less|more|что там ещё]
# ну или суфиксным алиасом как-нить пристроить

Помимо корутилсов для конвертации кодировки необходимо ещё enca ну и какой-нибудь most/less

Но вообще лучше fbless для консоли пока ещё ничего не придумали