Modifica Libreoffice-Files dalla riga di comando

Voglio aggiungere linee a una tabella calc libreoffice dalla riga di comando. Ma non ho idea di come.
Ho appena capito come avviare libreoffice dalla riga di comando.

Ad esempio, che cosa sta cercando: -Il test.ods-file prima

 Name Text Hans Bla Christian BlaBlub 

Io entro…

 ubuntu> [a command -insert] Alf|test -file=test.ods 

in modo che “Alf” e “test” vengano aggiunti come riga successiva nella tabella.
-Il test.ods-file dopo:

 Name Text Hans Bla Christian BlaBlub Alf test 

.ods è un archivio. Quindi dovrai estrarre l’archivio.

Dalla documentazione :

Struttura del file XML

I documenti nel formato di file OpenDocument sono memorizzati come archivi zip compressi che contengono file XML. Per visualizzare questi file XML, è ansible aprire il file OpenDocument con un programma di decompressione. I seguenti file e directory sono contenuti nei file OpenDocument:

  • Il contenuto del testo del documento si trova in content.xml.

Quindi non è così semplice come

 [a command -insert] Alf|test -file=test.ods 

dal momento che devi anche inserire le parti XML.


inserisci la descrizione dell'immagine qui

 $ cd ~/tmp/ $ unzip ../test.ods Archive: test.ods extracting: mimetype extracting: Thumbnails/thumbnail.png inflating: settings.xml inflating: content.xml inflating: meta.xml inflating: styles.xml inflating: manifest.rdf creating: Configurations2/images/Bitmaps/ creating: Configurations2/toolpanel/ creating: Configurations2/progressbar/ inflating: Configurations2/accelerator/current.xml creating: Configurations2/floater/ creating: Configurations2/statusbar/ creating: Configurations2/toolbar/ creating: Configurations2/popupmenu/ creating: Configurations2/menubar/ inflating: META-INF/manifest.xml 

Quando si guarda content.xml e si desidera aggiungere una nuova riga al di sotto dell’ultimo, è necessario aggiungere qualcosa come …

  a2a2a2  b2b2b2  

prima

  

e quindi comprimere nuovamente i file ( zip -r ../test2.ods . dalla directory con i file).

Risultato:

inserisci la descrizione dell'immagine qui


Per modificare il file dalla riga di comando ho usato questo comando. Ho messo l’esempio in ~ / Downloads e fatto un tmp / in là per testare. Tutti i comandi usati per questo:

 cd ~/Downloads/tmp/ unzip ../test.ods sed 's##a3a3a3b3b3b3&#' content.xml > content2.xml mv content2.xml content.xml zip -r ../test2.ods . 

Tutto quello che devi fare è sostituire i segmenti di testo con i tuoi.


Versione più recente per gentile concessione di Terdon (utilizza variabili per renderlo più leggibile):

 $ from="" $ to="a3a3a3b3b3b3" $ sed "s#$from#$to$from#" content.xml 

Il “#” è un separatore. Se hai un “#” nel testo usa qualcos’altro.