Ero sivun ”CSV” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
 
(6 välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 19: Rivi 19:
=== Tiedoston rakenne ja erotinmerkit (DSV) ===
=== Tiedoston rakenne ja erotinmerkit (DSV) ===
Vaikka CSV-lyhenne viittaa pilkkuun, käytetty erotin voi vaihdella alueittain. Formaattiin viitataankin usein yleisemmin nimellä DSV (Delimiter-Separated Values).
Vaikka CSV-lyhenne viittaa pilkkuun, käytetty erotin voi vaihdella alueittain. Formaattiin viitataankin usein yleisemmin nimellä DSV (Delimiter-Separated Values).
==== Datan tyyppi ====
CSV on pelkkä tekstitiedostomuoto. Se ei sisällä minkäänlaista metatietoa tai tietoa siitä, onko kentän arvo luku (kokonaisluku tai  desimaaliluku), päivämäärä vai teksti.
* Taulukkolaskenta- tai tietokantaohjelmien täytyy arvata datan tyyppi lukuprosessin aikana. Tämä voi aiheuttaa ongelmia jos esimerkiksi päivämäärät (12/01) tulkitaan amerikkalaisittain (1. joulukuuta) eurooppalaisen muodon sijaan (12. tammikuuta) ellei käyttäjä määritä tyyppiä itse tuonnin yhteydessä.
* Nollat: Esimerkiksi tuotenumero, joka alkaa nollalla (00123), voi menettää etunollansa, jos ohjelma tulkitsee sen suoraan kokonaisluvuksi.
Tämän vuoksi CSV-tiedostoja tuotaessa on kriittistä, että käyttäjä useimmissa ohjelmissa (kuten [[LibreOffice Calc]]) määrittelee itse, mikä datan tyyppi kuhunkin sarakkeeseen tuodaan, estääkseen virheelliset automaattiset muunnokset.


==== Erotinmerkit ====
==== Erotinmerkit ====
Rivi 57: Rivi 65:
! Arvo (sellaisenaan) !! CSV-muotoon kirjoitettuna !! Selitys
! Arvo (sellaisenaan) !! CSV-muotoon kirjoitettuna !! Selitys
|-
|-
| Audi; A6 || "Audi; A6" || Erotin (;) on arvon sisällä.
| Audi "A6" || "Audi ""A6""" || Arvon sisällä oleva lainausmerkki (") muutetaan kahdeksi lainausmerkiksi (""). Koko arvo ympäröidään lainausmerkeillä.
|-
|-
| "Hieno" auto || """Hieno"" auto" || Lainausmerkit arvon sisällä escapoidaan ("").
| Raportti; "Kevät" || "Raportti; ""Kevät""" || Sisältää erottimen (;) ja lainausmerkin. Molempien sääntöjen on täytyttävä.
|}
|}


Rivi 74: Rivi 82:
|+
|+
|-
|-
! Työkalu !! Kuvaus !! Puolipisteen käyttö
! Työkalu !! Kuvaus !! Erotin (:)-esimerkki
|-
|-
| ''[[awk]]'' || Yleinen tekstitiedoston prosessointikieli. Erinomainen rivien suodattamiseen ja muokkaamiseen. || -F ';' asettaa puolipisteen erotinmerkiksi.
| ''[[awk|GNU awk]]'' || Yleinen tekstitiedoston prosessointikieli. Erinomainen rivien suodattamiseen ja muokkaamiseen. || awk -F ';' '{ print $1 }'
|-
|-
| ''[[cut]]'' || Leikkaa sarakkeita tiedostosta. || -d ';' asettaa puolipisteen erotinmerkiksi.
| ''[[cut]]'' || Leikkaa sarakkeita tiedostosta. || cut -d ';' -f 2,4
|-
|-
| ''[[csvkit]]'' || (Paketti) Kokoelma Pythonilla kirjoitettuja työkaluja (esim. ''csvcut'', ''csvstat''). Tarjoaa SQL-tyyppisiä toimintoja. || -d ';' asettaa erotinmerkin, tukee sarakkeiden käsittelyä nimellä.
| ''[[csvkit]]'' || (Paketti) Kokoelma Pythonilla kirjoitettuja työkaluja (esim. ''csvcut'', ''csvstat''). Tarjoaa SQL-tyyppisiä toimintoja. || csvcut -d ';' -c Malli tiedosto.csv
|-
|-
| ''[[mlr]]'' (Miller) || Monipuolinen työkalu, joka ymmärtää sarakkeiden nimet (kuten SQL). Korvaa monessa suhteessa ''[[awk]]'', ''[[cut]]'', ja ''[[sort]]''-komennot. || --ifs ';' (Input Field Separator) määrittää puolipisteen.
| ''[[mlr]]'' (Miller) || Tehokas työkalu, joka käsittelee CSV/TSV/JSON-muotoja ja ymmärtää sarakkeiden nimet. Korvaa monessa suhteessa ''[[awk]]'', ''[[cut]]'', ja ''[[sort]]''-komennot. || mlr --ifs ';' cut -f Vuosi,Malli tiedosto.csv
|}
|}



Nykyinen versio 10. marraskuuta 2025 kello 17.06

CSV (.csv)

Tiedostopääte .csv
Mediatyyppi text/csv
Lisenssi RFC 4180, Avoin standardi

CSV (Comma-Separated Values) on yksinkertainen, vakiomuotoinen tekstitiedostoformaatti, jolla tallennetaan taulukkomuotoista tietoa. CSV-tiedosto koostuu riveistä ja kukin rivi edustaa yhtä tietoriviä. Rivin sisällä olevat kentät (sarakkeet) erotetaan toisistaan erotinmerkillä. Valmiita CSV-tiedostoja voidaan tuoda lähes kaikkiin taulukkolaskenta-, tietokanta- ja ohjelmointiohjelmistoihin.

Tiedoston rakenne ja erotinmerkit (DSV)

[muokkaa]

Vaikka CSV-lyhenne viittaa pilkkuun, käytetty erotin voi vaihdella alueittain. Formaattiin viitataankin usein yleisemmin nimellä DSV (Delimiter-Separated Values).

Datan tyyppi

[muokkaa]

CSV on pelkkä tekstitiedostomuoto. Se ei sisällä minkäänlaista metatietoa tai tietoa siitä, onko kentän arvo luku (kokonaisluku tai desimaaliluku), päivämäärä vai teksti.

  • Taulukkolaskenta- tai tietokantaohjelmien täytyy arvata datan tyyppi lukuprosessin aikana. Tämä voi aiheuttaa ongelmia jos esimerkiksi päivämäärät (12/01) tulkitaan amerikkalaisittain (1. joulukuuta) eurooppalaisen muodon sijaan (12. tammikuuta) ellei käyttäjä määritä tyyppiä itse tuonnin yhteydessä.
  • Nollat: Esimerkiksi tuotenumero, joka alkaa nollalla (00123), voi menettää etunollansa, jos ohjelma tulkitsee sen suoraan kokonaisluvuksi.

Tämän vuoksi CSV-tiedostoja tuotaessa on kriittistä, että käyttäjä useimmissa ohjelmissa (kuten LibreOffice Calc) määrittelee itse, mikä datan tyyppi kuhunkin sarakkeeseen tuodaan, estääkseen virheelliset automaattiset muunnokset.

Erotinmerkit

[muokkaa]

​CSV-standardin (RFC 4180) oletus on pilkku (,), mutta seuraavat erottimet ovat yleisiä: ​

  • Pilkkua (,) käytetään ensisijaisesti angloamerikkalaisissa järjestelmissä (RFC 4180:n oletus).
  • Puolipistettä (;) käytetään laajalti Suomessa ja monissa Euroopan maissa. Tämä on välttämätöntä, kun desimaalierottimena käytetään pilkkua (esim. 4,916) sekaannuksen estämiseksi.

Rivinvaihdo

[muokkaa]

​Rivinvaihdon merkintä vaikuttaa tiedoston yhteensopivuuteen eri käyttöjärjestelmissä: ​

  • CRLF (Carriage Return + Line Feed): Yleisin Windows-järjestelmissä ja RFC 4180 -standardin suosittelema.
  • ​LF (Line Feed): Yleisin Unix- ja Linux-järjestelmissä.

Otsikkorivi

[muokkaa]

​Tiedoston ensimmäinen rivi sisältää useimmiten kenttien nimet eli otsikkorivin (Header Row).

 
Vuosi;Merkki;Malli;Pituus
1994;Audi;A6;"4,916"
2001;Honda;Civic;"4,545"

​ (Huomaa, että 4,916 on ympäröity lainausmerkeillä, koska se sisältää erottimen kaltaisen pilkun.)

Lainausmerkit ja erikoismerkit

[muokkaa]

​CSV-formaatti käyttää lainausmerkkejä (") merkkijonojen ja erikoismerkkien käsittelyyn.

Lainausmerkeillä ympäröinti
[muokkaa]
  • Jos kentän arvo sisältää erotinmerkin, rivinvaihdon tai lainausmerkin, koko arvo on ympäröitävä lainausmerkeillä (").
Lainausmerkin Escapointi
[muokkaa]
  • Jos lainausmerkeillä ympäröity arvo sisältää itsessään lainausmerkin, se on escapoitava eli esitettävä kahdella peräkkäisellä lainausmerkillä ("").
Arvo (sellaisenaan) CSV-muotoon kirjoitettuna Selitys
Audi "A6" "Audi ""A6""" Arvon sisällä oleva lainausmerkki (") muutetaan kahdeksi lainausmerkiksi (""). Koko arvo ympäröidään lainausmerkeillä.
Raportti; "Kevät" "Raportti; ""Kevät""" Sisältää erottimen (;) ja lainausmerkin. Molempien sääntöjen on täytyttävä.

CSV-työkalut Linuxissa

[muokkaa]

Linuxissa taulukkomuotoisen datan käsittelyyn soveltuvat perinteiset komentorivityökalut sekä erikoistuneet paketit.

Graafinen käyttöliittymä

[muokkaa]
  • LibreOffice Calc: Tarjoaa erinomaisen tuen kaikille erotinmerkeille. Se kysyy erottimen aina tiedostoa avattaessa ja mahdollistaa puolipisteen valinnan myös tiedostoa vietäessä (Tallenna nimellä... -> Text CSV).

Komentorivityökalut

[muokkaa]

Perinteiset työkalut ovat joustavia, kun taas modernit paketit ymmärtävät taulukkorakenteen paremmin.

Työkalu Kuvaus Erotin (:)-esimerkki
GNU awk Yleinen tekstitiedoston prosessointikieli. Erinomainen rivien suodattamiseen ja muokkaamiseen. awk -F ';' '{ print $1 }'
cut Leikkaa sarakkeita tiedostosta. cut -d ';' -f 2,4
csvkit (Paketti) Kokoelma Pythonilla kirjoitettuja työkaluja (esim. csvcut, csvstat). Tarjoaa SQL-tyyppisiä toimintoja. csvcut -d ';' -c Malli tiedosto.csv
mlr (Miller) Tehokas työkalu, joka käsittelee CSV/TSV/JSON-muotoja ja ymmärtää sarakkeiden nimet. Korvaa monessa suhteessa awk, cut, ja sort-komennot. mlr --ifs ';' cut -f Vuosi,Malli tiedosto.csv

Ohjelmat jotka avaavat ja luovat .csv-tiedostoja

[muokkaa]

Katso myös

[muokkaa]
v  k  m
Asiakirjamuodot
Tekstiasiakirjamuodot .ODT | .FODT | .PDF | .DOC | .DOCX | .TXT
Tekstiasiakirjamallit .OTT
Taulukkolaskentamuodot .ODS | .OTS | .FODS | .XLS | .XLSX | .CSV | .TSV
Taulukkolaskentamallit .OTS
Esitysgrafiikka .ODP | .FODP | .PPTX | .SXI
Tietokanta .ODB
Vektorigrafiikka .ODG | .FODG
Kaavamuokkain .ODF
HTML-muokkain .HTML