Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: larpa - 28.12.10 - klo:11.11
-
Moi,
Tässä yritän kirjoitella .ods -tiedostoon komentokehotteen kautta, mutta ei tunnu onnistuvan halutulla tavalla.
echo "eka"\;"toka" > test.ods
Ylläoleva lauseke kirjoittaa test.ods tiedostoon riville 1,
sarakkeeseen 1: eka ja
sarakkeeseen 2: toka
Miten saisin kirjoitettua myös muille riveille kuin riville yksi?
-larpa
-
Kokeilin tuota enkä saanut echoa millään tekemään rivinvaihtoa ilman, että pääte lukisi sitä enteriksi.
Tuosta ods-tiedostopäätteestä arvelen, että lopputulemana haluat taulukon, ehkä OOOCalciin.
Voithan tietysti tehdä tiedoston Geditillä, jossa rivit voi vaihtaa normaalisti enterillä. Tallentaessa ei tiedostopäätteellä ole merkitystä, ihan tavallisen tekstiasiakirjan voi avata Calcilla taulukoksi. Tein tällaisen Gedit asiakirjan:eka tokaeka
toka kolmastoka
Calcin avausdialogi näyttää tältä: Erottimina pelkät välilyönnit
Luultavasti tarvitset tätä juttua osana jotain mutkallisempaa skriptiä. Ehkäpä nuo arvot voisi saada tallentumaan oikeaan järjestykseen jollain muulla käskyllä kuin echo >.
[ylläpito on poistanut liitteen]
-
Tuommoista sanotaan luullakseni cvs eikä ods muodoksi. ::)
Rivejä saa useampia käyttämällä useampaa echo komentoa:
echo 'eka;toka' >test.cvs
echo 'toka rivin eka;ja toka' >>test.cvs
Tai yhdelläkin
echo -e 'eka;toka\nkolmas;jne.' >test.cvs
(bash ei lavenna yksinkertaisissa hipsuissa olevaa tekstiä, vink vink)
Lisätietoja:
man echo
man bash
-
Kiitos vastauksista.
Lopputarkoitus on asialleni seuraava:
Minulla on logi-tiedosto logi.log, jota olen parsinut shell scriptillä.
Haluaisin parsimisen jälkeen tehdä OpenOffice.org spreadheet tiedoston automaattisesti eri hakemistoon jossa ajan scriptiä.
Esimerkki tiedostosta logi.log:
Feature 1: 1234 sdflkjasdflkjlkasdfjlkdas
Feature 1: 4323 sdkfjklsdur43
Feature 1: 4324 ösdkglökdfjg
Feature 2: 4325 skldfjlsdkjflsdflj
Feature 2: 1234 flkdjslkfjds
Lopputuloksena OpenOffice.org spreadheet:
Feature 1:
sdflkjasdflkjlkasdfjlkdas
sdkfjklsdur43
ösdkglökdfjg
Feature 2:
skldfjlsdkjflsdflj
flkdjslkfjds
-larpa
-
Kiitos vastauksista.
Lopputarkoitus on asialleni seuraava:
Minulla on logi-tiedosto logi.log, jota olen parsinut shell scriptillä.
Haluaisin parsimisen jälkeen tehdä OpenOffice.org spreadheet tiedoston automaattisesti eri hakemistoon jossa ajan scriptiä.
Esimerkki tiedostosta logi.log:
Feature 1: 1234 sdflkjasdflkjlkasdfjlkdas
Feature 1: 4323 sdkfjklsdur43
Feature 1: 4324 ösdkglökdfjg
Feature 2: 4325 skldfjlsdkjflsdflj
Feature 2: 1234 flkdjslkfjds
Lopputuloksena OpenOffice.org spreadheet:
Feature 1:
sdflkjasdflkjlkasdfjlkdas
sdkfjklsdur43
ösdkglökdfjg
Feature 2:
skldfjlsdkjflsdflj
flkdjslkfjds
-larpa
Näyttää siltä että OO avaa tekstimuotoisen tiedoston writeriin vaikka nimi on .ods -loppuinen. (Pisteet OO:lle siitä ;)
Joten voit päästä lähemmäksi tavoitettasi nimeämällä tiedoston csv -loppuisesti (tai jopa .xls)
-
Monenmoista kokeilin, mutta yksinkertaiset hipsut olivat liian vaikeita ;)
OOO avaa .csv ja .ods-päätteisten lisäksi ihan perustekstiasiakirjan ilman päätettä, winukassa muistaakseni myös .txt-päätteisen; mistä kiitos ;D
-
OOO avaa .csv ja .ods-päätteisten lisäksi ihan perustekstiasiakirjan ilman päätettä, ...
Linux/Unix -järjestelmissä yleensä ei tuolla päätteellä ole mitään merkitystä. Niitä kai käytetään vain vihjeeksi, millaisesta tiedostosta on kyse. Komento file <tiedosto.päätteineen> kertoo, millaisesta tiedostosta on oletettavasti kyse.
-
Monenmoista kokeilin, mutta yksinkertaiset hipsut olivat liian vaikeita ;)
No, käytä sitten kaksinkertaisia :D
Et voi käyttää yksinkertaisia hipsuja, jos olet jo parsinut sen lokitiedoston kentät muuttujiin ja haluat tulostaa ne echo-komennolla. Yksinkertaisten hipsujen ideana oli ettei shell laventaisi merkkijonoon upotettua rivinvaihtokoodia \n, vaan se välittyisi sellaisenaan echo-komennolle. Se estää kuitenkin myös muuttujien laventamisen.
Esim. jos käytössä muuttujat a='Feature 1' ja b='sdflkjasdflkjlkasdfjlkdas',
echo '$a;$b'
tulostaa $a;$b
, kun taas
echo "$a;$b"
tulostaa Feature 1;sdflkjasdflkjlkasdfjlkdas