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


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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.