Respostas:
A solução está usando odt2txt
. Agora, esse comando é fornecido por dois pacotes diferentes, um chamado odt2txt
que você pode instalar com
sudo apt-get install odt2txt
e pelo pacote unoconv
(que também oferece conversões de linha de comando entre mais formatos do libreoffice), instalado por
sudo apt-get install unoconv
Se você tiver os dois, poderá alternar entre eles usando o mecanismo alternativo :
sudo update-alternatives --config odt2txt
Se você estiver usando o odt2txt
fornecido pelo pacote, odt2txt
basta usar
odt2txt file.odt
se unoconv
você estiver usando o pacote fornecido, precisará usar
odt2txt --stdout file.odt
Faça com que eles less
tenham uma experiência menos parecida ( odt2txt file.odt | less
)
Observe que, se você não usar a --stdout
opção, o pacote fornecido por unoconv gravará o resultado em um arquivo chamado file.txt
.
O pacote sugerido pela distribuição parece ser o odt2txt
pacote (ele tem uma prioridade padrão mais alta no sistema alternativo); com certeza tem menos dependências.
unoconv
, como eu descobri, é que ele deseja instalar uma versão mais antiga do Libre Office, se você tiver uma mais nova instalada. Portanto, fique com sudo apt install odt2txt
.
update-alternatives
, obrigado.
Você pode navegar pelo texto sem nenhum utilitário especial. O arquivo ODT é um arquivo zip renomeado. Descompacte-o e você verá vários arquivos. Um deles, content.xml
contém todo o texto e é more
ou less
legível.
odt2txt file.odt
o código-fonte e o zip de trabalho da compilebal podem ser baixados aqui:
https://github.com/dstosberg/odt2txt/
ou instalado por
sudo apt-get install odt2txt
Você não pode cat
ou less
ou more
um arquivo .odt porque é um arquivo binário. Na verdade, é - como foi dito anteriormente - um arquivo .zip renomeado, então você precisa extrair o content.xml
arquivo, mas, como implica, é um documento XML, então você deve processá-lo para extrair as informações.
odt2txt
pacote e ele se comporta como deveria.