{"id":58,"date":"2003-12-14T22:40:12","date_gmt":"2003-12-14T22:40:12","guid":{"rendered":"https:\/\/143-42-55-146.ip.linodeusercontent.com\/?p=58"},"modified":"2003-12-14T22:40:12","modified_gmt":"2003-12-14T22:40:12","slug":"semestralka-z-dbs","status":"publish","type":"post","link":"https:\/\/nax.cz\/?p=58","title":{"rendered":"SEMESTRALKA Z DBS"},"content":{"rendered":"<p>Omlouvam se ze tenhle blog par tydnu zanedbavam, ale s tim jak se blizi zkouskou tak je casu cim dal min. Tenhle vikend jsem napriklad stravil vymislenim rafinovanych zpusobu jak do svoji semestralky z databazovych systemu dostat nejak smysluplna data. Tak treba asi 200 ulic i s realnymi cily popisnymi a orientacnimi jsem vytahl z telekomackeho <a href=\"http:\/\/telseznam.cz\/\">telefonniho seznamu<\/a>. Nicmene stejne vic jak pulka tabulek zustava prazdna a to hlavne proto, ze ty plnici dotazy nemuzu ladit, protoze ve skole zase nejede aplikacni server. Ach jo. Asi nebudu moct jit v utery na prednasku z TI a o to dyl si zitra protahnu den a budu tam ty data cpat pod parou. Snad to zitra zase nahodi. Blby je ze zitra prednaska z DBS vyjimecne zacina uz v 7:30 takze sem zvedavej jak zitra vstanu :((<\/p>\n<p>Jinak jsem dnes docela dost laboroval s regularnimi vyrazy. Tim jsem prisel na ruzne odlisnosti mezi regexp v grepu, perlu a ve vimku. Par prikladu za vsechny:<\/p>\n<p>Skriptik ktery do jinak uz hotoveho seznamu vkladacich dotazu na misto &#8222;i&#8220; vlozi unikatni id:<\/p>\n<p>$ cat id.pl<br \/>\n#!\/usr\/bin\/perl -w<\/p>\n<p>$i=14;<br \/>\n# nacita ze stdin nebo soubor z parametru<br \/>\nwhile ( $radek=<> ) {<br \/>\n    # samotny regularni vyraz nahrady<br \/>\n    $radek=~ s\/VALUES \\(i,\/VALUES ($i,\/;<br \/>\n    $i++;<br \/>\n    print $radek;<br \/>\n}<\/p>\n<p>Ta inicializace na 14 je tam proto, ze jsem uz mel ve svem souboru nejake data ocislovane rucne.<\/p>\n<p>Ted neco z grepu. Tak napriklad jsem mel fajl stazeny z czfree.net mapy, kde byli aktivni AP a nody. Nody se odlisovali tak, ze nemeli kanal a essid (pravda nekterym jsem od nich pomoct ;). No tak jsem udelal neco takovyhlejo:<\/p>\n<p>grep &#8222;[^0123456789]$&#8220; do10km.txt > klienti.txt<\/p>\n<p>a mel jsem seznam klientu. No a pak jsem si hral s tema textovejma souborama ve vimku abych z nich dostal prebytecny znaky a dostal do nich ty sql dotazy. Jeden z jednodussich za vsechny:<\/p>\n<p>:%s\/\\([^ ]*\\)\\s.*[0-9]\u00c2\u00b0\\s\\(.*\\)$\/INSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE nazev=&#8217;\\2&#8242;)),&#8217;\\1&#8242;,&#8217;wlan0&#8242;);\/<\/p>\n<p>Pricemz jsem mel soubor zhruba s nasledujicima radkama:<br \/>\n00:02:2D:42:66:F0 6400m 7\u00c2\u00b0      pigeon<br \/>\n00:02:2D:90:28:6E 9211m 322\u00c2\u00b0    angada<br \/>\n00:02:2D:90:2E:44 8675m 48\u00c2\u00b0     Danny<br \/>\n00:03:2F:10:F1:85 7187m 75\u00c2\u00b0     Bandit<br \/>\n&#8230;<br \/>\na vysledek pak vypadal nasledovne:<br \/>\nINSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE       +nazev=&#8217;pigeon&#8216;)),&#8217;00:02:2D:42:66:F0&#8242;,&#8217;wlan0&#8242;);<br \/>\nINSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE       +nazev=&#8217;angada&#8216;)),&#8217;00:02:2D:90:28:6E&#8216;,&#8217;wlan0&#8242;);<br \/>\nINSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE       +nazev=&#8217;Danny&#8216;)),&#8217;00:02:2D:90:2E:44&#8242;,&#8217;wlan0&#8242;);<br \/>\nINSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE       +nazev=&#8217;Bandit&#8216;)),&#8217;00:03:2F:10:F1:85&#8242;,&#8217;wlan0&#8242;);<br \/>\nINSERT INTO INTERFACE (ifID,mac,dev) VALUES ((SELECT nodID FROM NOD WHERE       +nazev=&#8217;Wood&#8216;)),&#8217;00:04:E2:7D:31:A0&#8242;,&#8217;wlan0&#8242;);<br \/>\n&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Omlouvam se ze tenhle blog par tydnu zanedbavam, ale s tim jak se blizi zkouskou tak je casu cim dal min. Tenhle vikend jsem napriklad stravil vymislenim rafinovanych zpusobu jak do svoji semestralky z databazovych systemu dostat nejak smysluplna data. Tak treba asi 200 ulic i s realnymi cily popisnymi a orientacnimi jsem vytahl z [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=58"}],"version-history":[{"count":0,"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions"}],"wp:attachment":[{"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}