Как "кошка" или "меньше" файла.odt писателя libreoffice?

Есть ли способ cat или же less файл.odt так же, как antiword делает для файлов.doc?

6 ответов

Решение

Решение использует odt2txt, Теперь эта команда предоставляется двумя разными пакетами, а именно один называется odt2txt что вы можете установить с

sudo apt-get install odt2txt 

и пакетом unoconv (который предлагает также преобразования командной строки между несколькими форматами libreoffice), который устанавливается

sudo apt-get install unoconv

Если у вас есть два, вы можете переключаться между ними, используя альтернативный механизм:

sudo update-alternatives --config odt2txt

Если вы используете odt2txt предоставляется пакетом odt2txt вы просто используете

odt2txt file.odt

при использовании unoconv при условии пакета вы должны использовать

odt2txt --stdout file.odt

Труба их less иметь менее похожий опыт (odt2txt file.odt | less)

Обратите внимание, что если вы не используете --stdout опция, предоставленный unoconv пакет запишет результат в файл с именем file.txt,

Пакет, предложенный дистрибутивом, кажется, odt2txt пакет (он имеет более высокий приоритет по умолчанию в альтернативной системе); наверняка у него меньше зависимостей.

Вы можете просматривать текст без каких-либо специальных утилит. ODT-файл представляет собой переименованный zip-архив. Распакуйте его, и вы увидите несколько файлов. Один из них, content.xml содержит весь текст и является more или же less удобочитаемый.

odt2txt file.odt

Исходный код и компилируемый рабочий zip можно скачать здесь:

https://github.com/dstosberg/odt2txt/

или установлен sudo apt-get install odt2txt

Ты не можешь cat или же less или же more файл.odt, потому что это двоичный файл. Это на самом деле - как было сказано ранее - переименованный архив.zip, так что вы должны извлечь content.xml файл, но это, как это подразумевается, является документ XML, поэтому вы должны обработать его как таковой, чтобы извлечь информацию из него.

Это также возможно с помощью собственного инструмента командной строки LibreOffice:

      loffice --convert-to txt f.odt && less f.txt

По крайней мере, начиная с LibreOffice 6.0, флаг--catдля этого можно использовать.

      libreoffice --cat your_file.odt

Имейте в виду, что для работы команды LibreOffice Writer необходимо закрыть.

Другие вопросы по тегам