Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: jekku - 08.06.19 - klo:07.59

Otsikko: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista? [RATKAISTU]
Kirjoitti: jekku - 08.06.19 - klo:07.59
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 :)
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: kamara - 08.06.19 - klo:09.30
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.
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: mpiso - 08.06.19 - klo:09.56
Pitääkö se olla nimenomaan komento, ohjelmako ei käy. Ohjelmiahan on useita, minulla on käytössä Kfind.
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: jekku - 08.06.19 - klo:10.36
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...
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: Tomin - 08.06.19 - klo:13.04
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.
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: retu - 08.06.19 - klo:21.29
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
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: jekku - 08.06.19 - klo:22.01
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.

Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: retu - 09.06.19 - klo:07.27
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. ;)
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: jekku - 09.06.19 - klo:08.37
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ä.
Otsikko: Vs: "grep" joka osaisi kaivaa merkkijonon officen laskentataulukoista?
Kirjoitti: retu - 09.06.19 - klo:18.48
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.