Como faço para produzir uma apresentação limpa a partir da linha de comando?

3

Eu criei um script para o terminal do Ubuntu que gera respostas. As respostas são copiadas para um documento do LibreOffice Writer. Existem tabelas e um formato desejado para isso. Todo o formato será perdido se eu sobrescrever, e não posso anexar se eu não for o primeiro a sair. É possível inserir automaticamente as respostas dentro das tabelas?

Eu só tenho um código simples como cat hostname para visualizar o nome do host da máquina. Estou lutando para copiá-lo e colá-lo. Tudo que quero é saber se é possível direcionar automaticamente a resposta dentro de uma tabela de um documento do LibreOffice Writer. O modelo de amostra ODT é enviado abaixo.

    
por Help the Newbie 02.05.2018 / 04:46

1 resposta

5

Isso não responde à pergunta porque a AFAIK não existe uma maneira simples de atingir a meta exatamente como as solicitações OP. Em vez disso, mostro duas abordagens diferentes para atingir o objetivo da melhor forma possível.

Até onde eu sei, a única interface facilmente acessível entre um shell script e tabelas no software de escritório da GUI como o LibreOffice é .csv -

um arquivo de valores separados por vírgulas

Isso é muito simples, mas também muito básico e não permite nenhuma formatação. Aqui está um exemplo de uso:

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

Como.csvéumarquivodetextosimples,vocêpodealteraroconteúdodecadaeditor,vamosusarsed:

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

Comoditoacima,issonãopermitequalquerformataçãoalémde todas em maiúsculas , que no seu contexto não é muito satisfatório.

Se, por um lado, você deseja ter arquivos de texto simples, pode facilmente mudar com as ferramentas de linha de comando, mas, por outro lado, também deseja obter um documento formatado de maneira bonita,

LaTeX é para você

Eu criaria um template.tex e marcaria as linhas que gostaria de alterar mais tarde com comentários que o LaTeX ignora, por exemplo coordenadas de célula como %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}

Compilado parece:

Noiníciodoseuscript,bastacriarumnomedearquivodesaídaexclusivoecopiaromodelo:

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

Agora você pode alterar este arquivo e adaptá-lo às suas necessidades com sed -i . Graças às marcas de linha adicionadas nos comentários, é fácil selecionar células únicas:

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

Quando todas as alterações forem feitas, basta executar pdflatex no arquivo .tex para obter a .pdf output:

pdflatex "$outfile"

AlgunslinksparacomeçarcomoLaTeX

por dessert 02.05.2018 / 10:14