Как "кошка" или "меньше" файла.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 необходимо закрыть.