Инструмент для просмотра файлов LibreOffice Writer в окне терминала

18

Я использую несколько файлов документации в формате LibreOffice ( .odt). Обычно я получаю к ним доступ с помощью LibreOffice Writer. Но бывают случаи, когда я могу подключиться к сайту только с помощью текстового терминала.

Мне интересно, есть ли инструмент на основе терминала, который может показать мне содержимое этих файлов в приблизительном правильном формате? (Файлы в основном содержат простой текст, списки маркеров и несколько таблиц 1x1, так что это относительно простые вещи с точки зрения форматирования.)

PS Этот вопрос не о запуске самого LibreOffice из командной строки (который здесь дан ).

rookie09
источник
3
Не в оригинальном ответе, но вы можете использовать odt2txt document.odt | lessдля непосредственного просмотра файла.
pLumo
@RoVo Это подходит для ответа! Было бы интересно, odt2txtхорошо ли справляется с работой libreoffice --convert-to(что я ожидаю, что она будет работать очень хорошо, если не будет много пробовать). Последний (насколько я выяснил) не может писать в стандартный вывод, так что, к сожалению, для него напрямую не доступны трубопроводы. Предостережение: если вы просто хотите быстро просмотреть (или выполнить поиск!) Содержимое вашего документа и, возможно, не слишком заботитесь о форматировании, odt2txt | …это путь. В противном случае давайте libreofficeконвертируем ваш документ, как описано ниже.
десерт
2
Простые документы хорошо конвертируются с помощью обоих инструментов. К сожалению, таблицы не преобразуются в таблицы ascii ...
pLumo

Ответы:

21

Существует инструмент, odt2txtкоторый можно конвертировать odtв txt.

По сравнению с libreoffice я вижу два преимущества:

  • Легкий, если у вас не установлен libreoffice (например, на сервере)
  • Он может печатать на стандартный вывод для прямого просмотра файлов.

Установка:

sudo apt install odt2txt

Затем вы можете просмотреть odt:

odt2txt document.odt | less
pLumo
источник
Если вы хотите преобразовать в файл, просто перенаправьте вывод с помощью odt2txt document.odt > fileили используйте --output=fileопцию.
десерт
21

libreofficeпредоставляет --convert-toопцию, которая может быть использована для преобразования документа, например, в текст или HTML:

  • преобразовать input.odtв input.txt:
    libreoffice --convert-to "txt:Text (encoded):UTF8" input.odt

  • преобразовать каждый .odtв текущем каталоге в .html:
    libreoffice --convert-to "html:XHTML Writer File:UTF8" *.odt

  • преобразовать каждый .odsв текущем каталоге в .csv:
    libreoffice --convert-to csv *.ods

Выход может быть открыт с помощью пейджера или терминала браузера понравившегося: less, mostили w3mперечислить только три.

Десерт
источник
Ницца! Можете ли вы использовать это для отображения версии текста прямо в терминале вместо записи в файл?
шайба
К сожалению нет, см. Мой комментарий выше .
десерт
12

LibreOffice имеет --catопцию, которая существует в версии 5.1, но не 4.2. Не уверен, когда именно он был представлен.

libreoffice --cat "Untitled 1.odt" --headless | less

Чтобы получить больше информации:

libreoffice --help
Джим К
источник
Обидно, что эта полезная опция не задокументирована libreofficeни на man- странице ни на help.libreoffice.org/Common/… , но, по крайней мере, libreoffice -hперечисляет ее.
десерт