abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 6
včera 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
včera 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
včera 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
včera 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 387 hlasů
 Komentářů: 31, poslední včera 19:19
Rozcestník
Reklama

Dotaz: sloučení několika souborů ve formátu *.csv

9.5.2006 23:54 pavel
sloučení několika souborů ve formátu *.csv
Přečteno: 720×
Dobrý den,rád bych poprosil o pomoc.

Mám několik souborů ve formátu *.csv.

Takto se mi soubory zobrazí v OpenOffice - Calc:

Prvni_soubor.csv:
Nějaký_text - hlavička
data1 data2 datan 1.1.2006
data1 data2 datan 2.1.2006
data1 data2 datan 3.1.2006
data1 data2 datan 4.1.2006
data1 data2 datan 5.1.2006

Druhy_soubor.csv:
Nějaký_text - hlavička
data1 data2 datan 3.1.2006
data1 data2 datan 4.1.2006
data1 data2 datan 5.1.2006
data1 data2 datan 6.1.2006
data1 data2 datan 7.1.2006

Treti_soubor.csv:
Nějaký_text - hlavička
data1 data2 datan 4.1.2006
data1 data2 datan 5.1.2006
data1 data2 datan 6.1.2006
data1 data2 datan 7.1.2006
data1 data2 datan 8.1.2006
data1 data2 datan 9.1.2006
data1 data2 datan 10.1.2006

Potřebuji, aby mi vypadlo:

Nějaký_text - hlavička
data1 data2 datan 1.1.2006
data1 data2 datan 2.1.2006
data1 data2 datan 3.1.2006
data1 data2 datan 4.1.2006
data1 data2 datan 5.1.2006
data1 data2 datan 6.1.2006
data1 data2 datan 7.1.2006
data1 data2 datan 8.1.2006
data1 data2 datan 9.1.2006
data1 data2 datan 10.1.2006
Jinak musím otevřít všechny soubory v Calcu, porovnat, kopírovat, vložit atd. atd.atd...

Poradil by mi někdo jak na to, popř. jaký příkaz na to použít?

Odpovědi

10.5.2006 01:22 tomas
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv

Berte to spíše jako návod, kudy se ubírat, než přesné řešení Vašeho problému:

echo "title1\ttitle2\ttitle3\tdate" >union.csv

sed -e 1d *_soubor.csv |sort |uniq >> union.csv

10.5.2006 19:52 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Díky za odpověď, zkusím si to nastudovat.
12.5.2006 10:08 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Jestli to dobře chápu, tak je potřeba vzít všechny datové řádky ze všech souborů, setřídit je podle data, vyházet duplicity a pak to všechno vypsat. Zkusil jsem to napsat v Pythonu. Nejvíc komplikací je s tím tříděním, protože je potřeba datum ve formátu
9.1.2006
převést na trojici
(2006, 1, 9)
Pak to teprve lze použít jako klíč pro sort(). Tady je ten program:
#!/usr/bin/env python
import sys, os, fileinput, re

data = {}
regexp = re.compile('^.*\s+(\d+)\.(\d+).(\d{4})\s+$')
for line in fileinput.input():
  if fileinput.isfirstline():
    hlavicka = line
  try:
    dmy = regexp.search(line).groups()
    key = map(int, dmy)
    key.reverse()
    key = tuple(key)
    data[key] = line
  except AttributeError:
    pass

keys = data.keys()
keys.sort()
sys.stdout.write(hlavicka)
for key in keys:
  sys.stdout.write(data[key])
Když se pustí s parametry
Prvni_soubor.csv Druhy_soubor.csv Treti_soubor.csv
tak vypíše tohle:
Nějaký_text - hlavička
data1 data2 datan 1.1.2006
data1 data2 datan 2.1.2006
data1 data2 datan 3.1.2006
data1 data2 datan 4.1.2006
data1 data2 datan 5.1.2006
data1 data2 datan 6.1.2006
data1 data2 datan 7.1.2006
data1 data2 datan 8.1.2006
data1 data2 datan 9.1.2006
data1 data2 datan 10.1.2006
Nevím, která hlavička tam patří, tak jsem ji vzal z posledního souboru.
12.5.2006 12:14 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Ještě bych chtěl upřesnit ty data, přesný formát je:

data1;data2;datan;2006-05-28 18:20:10

data1;data2;datan;2006-05-28 18:20:10

12.5.2006 12:41 xxl
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Nevím, jestli to správně chápu. Ale co použít něco takového:
tail +2 Prvni_soubor.csv > data
tail +2 Druhy_soubor.csv >> data
tail +2 Treti_soubor.csv >> data

echo "Nějaký_text - hlavička" > Vysledny_soubor.csv
sort -t\; -gk4,4 data >> Vysledny_soubor.csv
12.5.2006 13:18 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Takže já jsem zkusil:

cat *.csv >spojeno.csv

cat spojeno.csv|sort -n -u -t- -k1,1 >trideno_dle_datumu

Funguje to, ale u toho -t mi nefunguje parametr středník, který tam měl být původně.

Děkuji všem a hlavně prvnímu v této diskuzi, co mi odpověděl a navedl správným směrem.

12.5.2006 20:06 tomas
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv

problém je v tom,že středník je ostrý znak shellu pro oddělování příkazů, které jsou na jednom řádku. Řešení je popsáno v příspěveku od neznámého xxl.

Ještě si zkontrolujte, zda vám hlavičky neskončily na konci výsledného souboru (|tail). Řešením by pak bylo použít místo cat *.csv ,něco jako sed -s -e 1d *.csv

13.5.2006 17:58 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Je to tak, ten příspěvek se středníkem jsem přehlédl (t\;).

Hlavičky mi vychází dobře, ale ten příkaz si aspoň zkusím.

15.5.2006 20:18 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Tak mi to jede dobře jen s jedním měsícem, pokud tam přidám soubory s dalším měsícem, třídí to špatně. Tak jsem zase na začátku, pomoc...
15.5.2006 22:17 pavel
Rozbalit Rozbalit vše Re: sloučení několika souborů ve formátu *.csv
Takže takto mi to třídí dobře:

cat *.csv >spojeno.csv

cat spojeno.csv |sort -u -t- -k2 >trideny.csv

Už jsem myslel, že to nepůjde a vzdám to.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.