Sivu 1/1

Tekstitiedoston muokkausta automaattisesti?

Lähetetty: 22.10.2012 klo 13.57
Kirjoittaja pv2010
Olisiko mahdollista Automatorilla (tai ehkä Apple Scriptillä?) tehdä apuohjelma, joka poistaa halutusta (teksti)tiedostosta rivejä säännöllisesti, esim. joka toisen, kaksi kolmesta. Tai säilyttää joka 10:nnen?
Ongelma: minulla on selkotekstitiedosto, joka sisältää suuren määrän koordinaattitietoja (x, y, z), yhden pisteen koordinaatit aina yhdellä rivillä. Koordinaattipisteitä on tarpeettoman paljon: Texturiin avattuna normaalilla fonttikoolla A4-sivuja on yli 7000 (tiedoston koko 11 mgeaa). Pisteistä on mahdollista muodostaa tietokoneella 3-ulotteinen malli, mutta huomattavasti karkeampi malli riittäisi. Tähän päästäisiin rivejä poistamalla.
Automatorin kanssa ehkä pärjään, mutta Apple Script saattaa olla haastavampaa…
Kiitos etukäteen!

Re: Tekstitiedoston muokkausta automaattisesti?

Lähetetty: 22.10.2012 klo 14.34
Kirjoittaja mkv
pv2010 kirjoitti:Olisiko mahdollista Automatorilla (tai ehkä Apple Scriptillä?) tehdä apuohjelma, joka poistaa halutusta (teksti)tiedostosta rivejä säännöllisesti, esim. joka toisen, kaksi kolmesta. Tai säilyttää joka 10:nnen?
Ongelma: minulla on selkotekstitiedosto, joka sisältää suuren määrän koordinaattitietoja (x, y, z), yhden pisteen koordinaatit aina yhdellä rivillä. Koordinaattipisteitä on tarpeettoman paljon: Texturiin avattuna normaalilla fonttikoolla A4-sivuja on yli 7000 (tiedoston koko 11 mgeaa). Pisteistä on mahdollista muodostaa tietokoneella 3-ulotteinen malli, mutta huomattavasti karkeampi malli riittäisi. Tähän päästäisiin rivejä poistamalla.
Automatorin kanssa ehkä pärjään, mutta Apple Script saattaa olla haastavampaa…
Kiitos etukäteen!
Jos vaatimuksena ei ole nimenomaan Automator tai Applescript, lähtisin itse tekemään asiaa ihan vanhoilla kunnon komentorivityökaluilla, esim. sed hoitaa homman yhdellä komennolla kunhan vähän opiskelee sen käyttöä. Löysin tämän sivun: http://www.unix.com/shell-programming-s ... -file.html jossa tehdään aika lähelle kuvailemaasi juttua.

Esimerkiksi tiedosto jossa joka rivillä lukee sen rivin numero eikä muuta ja poistetaan joka toinen rivi:

Koodi: Valitse kaikki

$ sed -n 'p;N' tiedosto.txt 
1
3
5
7
9
Tuota komentoa muokkaamalla pääsee jo aika pitkälle :)

EDIT: Awk taitaa olla vähän helppokäyttöisempi, saman homman voi tehdä myös näin:

Koodi: Valitse kaikki

$ awk 'NR % 2 == 1' tiedosto.txt 
1
3
5
7
9

$ awk 'NR % 5 == 1' tiedosto.txt 
1
6

Re: Tekstitiedoston muokkausta automaattisesti?

Lähetetty: 22.10.2012 klo 15.20
Kirjoittaja pv2010
Kiitos! Viimeinen awk taisi tehdä homman. Vaatimuksena ei tosiaan ollut Automatori tai Apple Script.
Pieni mutta: lopputulos tulostui Pääte-ohjelman ikkunaan. Miten sen saisi ohjattua tiedostoon? OFS- tai ORS-parametrilla?
En oikein ymmärrä noita parametrejä, mutta täytyy tutkailla lisää... Kiitos vielä. Erittäin nopea vastaus.

EDIT: Jaa, tiedostoon tulostaminen vaatikin loppuun vain ">tied.txt".
Nyt pärjään. Kiitos vielä!

Re: Tekstitiedoston muokkausta automaattisesti?

Lähetetty: 22.10.2012 klo 15.25
Kirjoittaja mkv
pv2010 kirjoitti:Kiitos! Viimeinen awk taisi tehdä homman. Vaatimuksena ei tosiaan ollut Automatori tai Apple Script.
Pieni mutta: lopputulos tulostui Pääte-ohjelman ikkunaan. Miten sen saisi ohjattua tiedostoon? OFS- tai ORS-parametrilla?
En oikein ymmärrä noita parametrejä, mutta täytyy tutkailla lisää... Kiitos vielä. Erittäin nopea vastaus.
Voit ohjata lopputuloksen tiedostoo laittamalla komennon perään > merkin ja tiedoston nimen, eli esimerkiksi:

Koodi: Valitse kaikki

$ awk 'NR % 5 == 1' tiedosto.txt > toinentiedosto.txt

Re: Tekstitiedoston muokkausta automaattisesti?

Lähetetty: 22.10.2012 klo 15.38
Kirjoittaja pv2010
mkv kirjoitti:

Koodi: Valitse kaikki

$ awk 'NR % 5 == 1' tiedosto.txt > toinentiedosto.txt
Etsivä löysi itsekin kun viitsi yrittää... Kiitos kuitenkin vielä tästäkin. <:o)