逗号分隔值文件

逗号分隔值文件

我为 Ubuntu 终端创建了一个生成答案的脚本。答案被复制到 LibreOffice Writer 文档中。其中包含表格和所需的格式。如果我覆盖,所有格式都会丢失,如果我不先输出,则无法附加。我是否可以自动将答案插入表格中?

我只有简单的代码,比如cat hostname预览机器主机名。我很难复制和粘贴它。我只想知道是否可以自动将答案指向 LibreOffice Writer 文档的表格内。示例 ODT 模板已上传到下面。

示例模板

答案1

这并没有回答问题,因为据我所知,没有简单的方法可以完全像 OP 请求的那样实现目标。相反,我展示了两种不同的方法来尽可能好地实现目标。

据我所知,Shell 脚本和 LibreOffice 等 GUI 办公软件中的表格之间唯一易于访问的接口是.csv-

逗号分隔值文件

这非常简单,但也非常基础,并且不允许任何格式化。以下是使用示例:

$ echo -e "heading 01,heading 02\ncell A2,cell B2\ncell A3,cell B3" >a.csv
$ loffice -o a.csv

LibreOffice csv 01

由于是.csv一个简单的文本文件,您可以使用每个编辑器更改其内容,让我们使用sed

$ sed -i 's/cell A2/replaced cell/' a.csv 
$ loffice -o a.csv

LibreOffice csv 02

如上所述,这不允许任何格式化此外全部大写,这在您的上下文中并不十分令人满意。


如果你一方面想要拥有可以使用命令行工具轻松更改的简单文本文件,但另一方面又想获得格式精美的文档,

乳胶是给你的

我将创建一个template.tex,并用 LaTeX 忽略的注释标记我稍后想要更改的行,例如单元格坐标如下%A2

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{multicol}
\begin{document}
\begin{tabular}{p{5cm}p{5cm}}
  \toprule
  \multicolumn{2}{l}{System/Client Information} \\
  \midrule
  {\tiny Machine Hostname:}\newline
  dessert's plowhorse %A2
  &
  {\tiny Machine Brand and Model:}\newline
  Thinkpad X240 %B2
  \\
  {\tiny Operating System (Version \& Variant):}\newline
  Lubuntu 16.04.3 LTS %A3
  &
  {\tiny Kernel Version\,/\,Update Level:}\newline
  4.10.0-35-generic %B3
  \\
  \bottomrule
\end{tabular}
\end{document}

编译后看起来像这样:

LaTeX 示例 01

在脚本的开始处,只需创建一个唯一的输出文件名并复制模板:

outfile="/path/to/$(date +%F_%T).tex"
cp /path/to/template.tex "$outfile"

现在,您可以更改此文件并使其适应您的需要sed -i,得益于注释中添加的线条标记,可以轻松选择单个单元格:

sed -i 's/.*%A2/  replaced cell value/' "$outfile"

完成所有更改后,只需运行pdflatex文件.tex即可获得.pdf输出:

pdflatex "$outfile"

LaTeX 示例 02

一些关于 LaTeX 入门的链接

相关内容