Portál AbcLinuxu, 2. května 2025 11:11

Nejčetnější příjmení v ČR

16.2.2006 17:39 | Přečteno: 5399× | Linux | poslední úprava: 17.2.2006 13:25

Náhodou jsem kdysi našel na webu Ministerstva vnitra stránku Nejčetnější příjmení v ČR. Mužská příjmení (s četností 5 a více) jsou jako jediná dostupná i v normálním textovém formátu csv, zbytek je ve formátu MS Excell.

Prohledávání pomocí grepu mě přestalo bavit a tak jsem si napsal v shellu překrásné uživatelské rozhraní :-D. Skript dokonce umí automaticky stáhnout potřebný soubor, rozbalit, překonvertovat jej z CP1250 na UTF-8, nebo ISO-8859-2, odstranit DOSové konce řádků a gzipem zase zabalit.

#!/bin/sh

#
#   Cetnost jmen v Ceske republice, jednoduche hledani
#   Potrebuje zgrep, wget, recode, gzip, unzip
#   autor: Michal Vyskocil
#

DB="m_csv.csv.gz"


TMP=`mktemp`

getDb() {
    URL="http://www.mvcr.cz/statistiky/jmena/m_csv.zip"
    DB_NAME="m_csv"

    ls $DB_NAME.zip &>/dev/null
    ret=$?
    [ $ret -ne 0 ] && wget $URL

    ENC="UTF-8"
    [ "`locale | head -n 1 | grep -i utf`" == "" ] && ENC="ISO-8859-2"

    unzip -qq $DB_NAME.zip
    
    recode cp1250..$ENC $DB_NAME.csv
    gzip $DB_NAME.csv
}

clean() {
  rm -rf $TMP
}

trap clean EXIT

ls $DB &> /dev/null
ret=$?
if [ $ret != 0 ]; then
    dialog --yesno "Databáze nenalezena. Chcete ji stáhnout ze stránek ministerstva vnitra?" 6 45
    ret=$?
    [ $ret -ne 0 ] && exit $ret
    getDb
fi

while true; do
    dialog --inputbox "Napiš hledané jméno" 7 30 2> $TMP
    ret=$?
    [ $ret -ne 0 ] && exit $ret
    
    ANSW=`cat $TMP`
    [ "$ANSW" == "" ] && exit 1
    
    echo -e "Pořadí\tJméno\tČetnost" > $TMP
    for LINE in `zgrep -i $ANSW $DB`; do
        echo $LINE | tr ';' '\t' >> $TMP
    done
    
    dialog --textbox $TMP 20 60
done

Skript potřebuje následující programy - zgrep, wget, recode, gzip, unzip, mktemp a locale. Pokud někdo zná způsob, jak v konzoli automaticky převést xls na csv, zkusím skript rozšířit i o hledání v dalších databázích. Není to moc otestované, takže si vyhrazuji právo na chyby. (Změna: dočasný soubor generuje mktemp, zdá se, že není všude k dispozici)

$ zgrep -i Vyskočil  m_csv.csv.gz
346;VYSKOČIL;1721
       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

16.2.2006 18:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
Když jsem ty databáze viděl poprvé, připadlo mi jednodušší nacpat to do Firebirda a používat SQL dotazy…
Cubic avatar 16.2.2006 19:47 Cubic | skóre: 24 | blog: obcasne_vyplody | Essex
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
tohle uz je deformace :-) a co treba otevrit v OO.o Calcu (MS Excelu) a seradit podle prislusneho sloupce ? :-)
Do you like what you see? No? Well, bloody look harder.
16.2.2006 20:08 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Ono už to seřazené je, v tom problém nemám. Já potřebuji nějak automaticky převést ty excellovské potvory na text, hlavně, pokud se toho lidská ruka nedotkne :-)
When your hammer is C++, everything begins to look like a thumb.
16.2.2006 23:54 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Ze by xls2cvs? :-)
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
16.2.2006 23:54 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
ehm, csv samozrejme.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
16.2.2006 23:56 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
balicek catdoc
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
17.2.2006 10:53 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Neznal jsem, díky.
When your hammer is C++, everything begins to look like a thumb.
16.2.2006 20:24 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm..no a to nejčastější příjmení tedy je...? :D
16.2.2006 20:37 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Stačí navštívit ten odkaz, ale asi to není žádné překvapení :-)
When your hammer is C++, everything begins to look like a thumb.
16.2.2006 23:49 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
12222 - jsem na hezkém místě... :-D

I když ono je to spíš 12187.-12329. místo, že jo... :-)
Jak moc jsou ábíčkáři inteligentní? ;-)
Heron avatar 16.2.2006 23:53 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm, zajímavý. Našel jsem chybu. V systému nemám tempfile (předpokládám, že je to program na vytvoření unikátního jména tmp souboru).
Heron
17.2.2006 10:52 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Pokud máš mktemp, není co řešit a nahradím to. Já sice předpokládal, že programy v /bin budou všude, ale asi jsem se spletl :-). Jinak u mě jsou součástí balíčku debianutils.
When your hammer is C++, everything begins to look like a thumb.
Heron avatar 17.2.2006 12:31 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
mktemp mám. Programy v /bin taky mám ;-)

Jinak zkoušel jsem to (po nahrazení $TMP něčím statickým) a je to docela ok skriptík. Některé výsledky jsou zajímavé.

PS: když něco mám dělat na cizím kompu, tak raději předpokládám, že tam nemá vůbec nic a že stroj samotný nefunguje. Člověk je pak mile překvapen, když zjistí, že ty livecd bral zbytečně. :-)
17.2.2006 13:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Tak on ten skriptík je hlavně úplně blbý, jenom obaluje zgrep dialogem, aby to bylo uživatelsky přítulné :-D. Zkusím časem dopsat podporu i pro další databáze (včetně automatického stažení a konverze).
When your hammer is C++, everything begins to look like a thumb.
Isah avatar 17.2.2006 09:04 Isah | skóre: 4 | blog: SF | Matička stověžatá
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin

...a pak že je statistika nuda :-) Takové zajímavé údaje..

Omnia mea mecum porto. Dubito ergo cogito, cogito ergo sum
17.2.2006 11:16 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
Sory, ale ten skript, to je fakt onanie. Můj postup: spustit OOo Calc, otevřít csv (nastavit kódování) a je to. Asi tak 20 vteřin :-) Neřeknu kdybys zpracovával podobné soubory ze všech států :-)
17.2.2006 11:29 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Hmm, v systému mi ještě běží kompilace. Je to čas bez stažení (což je závislé na podmínkách sítě), rozbalení, překódování a zabalení. Celé to trvalo asi vteřinu, napsal jsem to během pár minut (nejdéle zabralo přečtení manuálové stránky k recode).
$ time ./getDB

real    0m0.994s
user    0m0.572s
sys     0m0.060s
Je možné, že něco podobného půjde napsat s pomocí OpenOffice, ale to já neumím a nemám důvod se to učit :-). Krásné na tom je, že to pracuje bez lidského zásahu a o to v unixech přece jde, nebo ne? Aneb proč budu 20 vteřin klikat (zvlášť v molochu jako OO), když to může udělat počítač sám a rychleji?
When your hammer is C++, everything begins to look like a thumb.
17.2.2006 15:13 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Víš, tys ten skript ještě předtím musel napsat, to určitě zabralo víc než 20 sekund ;-)
Copak toho není dost?
17.2.2006 15:47 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
... napsal jsem to během pár minut ...
A pro klid duše si ho můžu klidně pustit několikrát, abych to srovnal ;-)
When your hammer is C++, everything begins to look like a thumb.
17.2.2006 15:57 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Když ti ten výsledek nestačí spočítat jednou, tak ti v tom nikdo bránit nebude :-)
Copak toho není dost?
17.2.2006 16:35 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Já to udělám ještě jinak, budu počítat, že si ten skript pustil každý desátý člověk, který si tento post přečetl. No a 600/10 * 20s = 1200 s = 20 minut :-D.
When your hammer is C++, everything begins to look like a thumb.
David Watzke avatar 19.2.2006 10:24 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
COOOO?? Watzke není v první dvacítce? :-D

Mimochodem máš srandovní styl... nějadřív Michal Vyskocil a pak v dialozích je to zase s háčkama, jednou vykáš, potom tykáš :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 19.2.2006 13:16 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
Když zadám Watzke, nebo WATZKE, vidím jen tohle. V tom souboru ale Watzke je :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
22.2.2006 14:36 K.A.T.K.A.
Rozbalit Rozbalit vše Re: Nejčetnější příjmení v ČR
Odpovědět | Sbalit | Link | Blokovat | Admin
No, já mám nejšikovnější příjmení - nemusím nikomu vařit kávu. Kafe ode mě totiž nikdo nechce ;-).

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.