Kirjoittaja Aihe: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista? [RATKAISTU]  (Luettu 3176 kertaa)

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
On melkoinen kokoelma LibreOffice taulukoita (*.ods).
Pitäisi kaivaa tietty merkkijono, edes tieto siitä että esiintyykö.

Onko mahdollista jotenkin.

Kai purkamalla tiedosto, content.xml rivittäen ja siitä etsien - mutta ilman moista kikkailua?

Edit: riittävästi hyviä vinkkejä joten merkitään ratkaistuksi 09.06.2019 :)
« Viimeksi muokattu: 09.06.19 - klo:19.09 kirjoittanut jekku »

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Kai purkamalla tiedosto, content.xml rivittäen ja siitä etsien - mutta ilman moista kikkailua?

Sillä tavalla mä tekisin, jos olisi vastaava tarve. Toki tekisin scriptin, joka automatisoisi kyseisen toiminnon.

mpiso

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Pitääkö se olla nimenomaan komento, ohjelmako ei käy. Ohjelmiahan on useita, minulla on käytössä Kfind.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Pitääkö se olla nimenomaan komento, ohjelmako ei käy. Ohjelmiahan on useita, minulla on käytössä Kfind.

Sen takia ensisijaisesti komento että tuloksen edelleen ohjaus on helpompaa.
Joko putkittaen seuraavalle komennolle tai tiedostoon.
Kai se onnistuisi muutenkin, mutta ei jaksa opetella ;(

Vahvasti alkaa näyttää siltä että pikku skriptin paikka...

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Sivun lopussa näyttäisi olevan tähän tarkoitukseen sopivia työkaluja: http://opendocumentformat.org/developers/

Siellä on useampikin tekstiksi muuntava työkalu ja myös yksi grepin kaltainen.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Jos haluat kaivella grep komennolla, taulukot voi konvertoida  tekstiksi vaikka näin:
Koodia: [Valitse]
for f in *.ods
do
libreoffice --calc --convert-to csv "$f"
done

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Jos haluat kaivella grep komennolla, taulukot voi konvertoida  tekstiksi vaikka näin:
Koodia: [Valitse]
for f in *.ods
do
libreoffice --calc --convert-to csv "$f"
done

Heh. Tuon kirjaan lunttilistaani :)

Tosin ekalla kokeilulla ei konvertoinut kuin ensimmäisen taulukon.
Ellen löydä vipua jolla kerron monesko kiinnostaa.


retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Laitoin tuon for-loopin, kun sinulla oli useampi tiedosto. Toivottavasti ei jäänyt jotain huomioimatta. En oo ite käyttänyt tuota kuin yksittäisten tiedostojen muuntoon.

Libreofficen man-sivulla on lisää noista vipstaakeista. ;)

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Joo, jotain löysinkin. Mikähän siinä kun noiden graafisten kilkkeiden man-sivut pyrkivät unohtumaan.

Mutta paitsi useita tiedostoja, niin mielenkiinnon kohteena olevissa tiedostoissa on useita taulukoita, tyypillisesti jotain 4 ja 15 välillä.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Juu, kokeilin sitten minäkin. Eipä tuo näköjään osaakaan käsitellä eri välilehtiä.

Oon joskus tehnyt vastaavaa excelillä komentaen exceliä com-rajapinnan kautta. Siinä on mahdollista tallentaa haluttu välilehti tiedostoon. Aattelin että libreofficelle olisi varmasti vastaava tehtävissä vaikka pythonilla ja googlailin miten välilehdet saisi tallennettua. Näköjään ei tarvitse pythonia, riittää kun asentaa gnumeric-taulukkolaskennan ja komentaa:
Koodia: [Valitse]
ssconvert --export-type=Gnumeric_stf:stf_assistant taulukko.ods taulukko.txtTuo viimeinen parametri on output-tiedosto, johon välilehdet tallentuvat peräkkäin.