Existe uma ferramenta bastante útil para converter arquivos .odt (supondo que seu objetivo seja converter .odt em vez de .ods para .docx ) - é chamado LibreOffice. O LO tem uma interface de linha de comandos, permitindo conversões de arquivo sem abrir o arquivo .odt na GUI de LO.
Aqui está uma extração mostrando o parâmetro de linha de comando necessário '--convert-to' '(para o LibreOffice 5.1.6):
$ soffice -h
LibreOffice 5.1.6.2 10m0(Build:2)
Usage: soffice [options] [documents...]
Options:
(...)
--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files
Batch convert files (implies --headless).
If --outdir is not specified then current working dir is used as output_dir.
Eg. --convert-to pdf *.doc
--convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
--convert-to "html:XHTML Writer File:UTF8" *.doc
--convert-to "txt:Text (encoded):UTF8" *.doc
(...)
Remaining arguments will be treated as filenames or URLs of documents to open.
Use apenas docx como nome do filtro de saída.
Então,
soffice --convert-to docx file.odt
converteria o arquivo file.odt para file.docx (o parâmetro --headless não é mais necessário).
Importante: o comando da linha de comando funciona apenas se não houver nenhuma outra instância do LO em execução. Portanto, certifique-se de sair da LO antes de emitir o comando.