Как создать текстовый документ в форме документа с терминалом

13

Я знаю, что могу легко создать файл docx с помощью libreOffice, но я просто хочу больше узнать об использовании bash. Кто-нибудь может объяснить, если это вообще возможно с терминалом? Сенсорная команда делает достойную работу, но не указывает никакого расширения.

Серебряная вспышка
источник
3
Расширения файлов не имеют большого значения в Ubuntu, так что если у touch file.docxвас есть файл docx. :) Что делает файл DOCX файлом DOCX для вас?
десерт
6
touchкоманда позволяет указать расширение; touch foo.docx, но это создаст пустой файл. Это то, что вы хотите? В противном случае, loffice --convert-to docx foo.odtбудет работать в терминале.
вальтинатор
4
@dessert docx - это формат файла: Office Open XML
wjandrea
3
"Кто-нибудь может объяснить, если это вообще возможно с терминалом?" К вашему сведению: odt, docx, xlsx - контейнеры. Вы можете распаковать их и иметь удобочитаемую версию. Хорошо читаемый человеком ... это XML и большой.
Rinzwind
3
Если ваша цель - изучить bash, это не операция bash. Использование сторонних инструментов в bash не использует bash. Если вы хотите изучать bash, попробуйте объединить 2 или более отдельных инструмента в нечто полезное. Вам даже не нужен Bash, чтобы сделать это.
Braiam

Ответы:

29

Согласно этой теме в Unix & Linux, вы можете использовать Pandoc .

Из просмотра документации я думаю, что вы можете использовать ее следующим образом:

echo "Hello" | pandoc -o out.docx

Затем out.docxбудет файл docx с надписью «Hello».


Также я нашел этот модуль Python: python-docx

wjandrea
источник
6
+1 TIL о Pandoc, который фактически может конвертировать тонну форматов разметки друг в друга.
десерт
20

LibreOffice поставляется с инструментом командной строки, sofficeкоторый называется libreofficeуказывающим на него, этот инструмент имеет --convert-toопцию, которая позволяет вам легко конвертировать файлы так же, как это делает программа с графическим интерфейсом, например:

libreoffice --convert-to docx file.txt

Это создает файл file.docxв текстовом формате Office Open XML в текущем каталоге.

Пример использования

$ echo some text > file.txt
$ libreoffice --convert-to docx file.txt 

convert /home/dessert/file.txt -> /home/dessert/file.docx using filter : Office Open XML Text
$ file file.docx 
file.docx: Microsoft OOXML
Десерт
источник