Найти в Дзене
Случайное

Сконвертировать несколько fb2-файлов в текст на Linux

Чуточка консольной магии на скорую руку: ls, xargs, pandoc.

Задача выглядит странной, но так получилось, что сегодня меня попросили сделать именно это. Потому что для читалки (в смысле, программы, которая читает текст вслух) fb2 не годится.

Не сразу, но вспомнила, что у меня на ноуте давно и благополучно стоит утилита pandoc (pandoc.org), которой большая часть этой задачи вполне по силам. Чуть не поставила Calibre, брррр...

А дальше просто не хотелось много раз писать одну и ту же команду, подставляя вручную имена файлов, хотелось получить результат сразу.

ls -1 *.fb2 | xargs -I {} pandoc --wrap preserve -f fb2 -t plain -o {}.txt {}

Что здесь зачем?

"ls -1 *.fb2" - даёт список fb2-файлов текущего каталога по одному на строчке.

Дальше задача xargs подставлять эти имена файлов на место "{}" в команду, которая предназначается для pandoc.

Pandoc выполняет основную задачу, то есть, конвертирует из fb2 в txt, и сохраняет файлы, добавляя ".txt" в конец названия. Правильнее было бы заменять fb2 на txt, но я делала очень на скорую руку.

Опция --wrap preserve - вообще необязательная, просто чтоб не добавлять лишние переносы строк.

Картинка с openclipart.org
Картинка с openclipart.org