Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.
Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Řešení dotazu:
WWW::Mechanize HTML::TreeBuilder Data::Dumper LWP::UserAgentPriklad:
#!/usr/bin/perl -w use strict; $| = 1; use LWP::UserAgent; use HTML::TreeBuilder; use Time::HiRes qw(gettimeofday tv_interval usleep sleep); use URI; use File::Path; use Data::Dumper; my $start_url = 'http://blog.hostname.sk'; my $regexp = 'MySQL'; my $ua = LWP::UserAgent->new; my $response = $ua->get($start_url); unless ($response->is_success) { warn $response->status_line; } #warn Dumper($response); my $tree = HTML::TreeBuilder->new_from_content($response->content); my $base = [ map { $_->attr('href'); } $tree->look_down( '_tag', 'base', sub { $_[0]->attr('href') ne '' } ) ]->[0]; $base ||= $start_url; my @raw_links = $tree->look_down( '_tag', 'a', sub { my $href = $_[0]->attr('href'); (defined($href) && $href =~ m/$regexp/i); } ); #print Dumper(\@raw_links); my @links = map { URI->new_abs( $_->attr('href'), $base)->as_string(); } @raw_links; $tree = $tree->delete(); print Dumper(\@links);Skript uvedeny vyssie najde na mojom blogu vsetky linky v suvislosti s MySQL ($regexp). Mozno potrebujes nieco podobne.
printf "1\n2\n3\n4\n5" | ltrace grep "1" 2>&1 | grep -c '^mbrtowc('by mělo hodit tak "2" (ujistěte se že máte ltrace), nebo jinak, zpracování delšího souboru by mělo trvat zhruba stejně dlouho s nastaveným
LANG=C
jako bez něj.cat
před sed
je jistě nesmysl (sed
umí číst ze souboru), grep
za sed
em je patrně také nesmysl (výstup sed
u lze libovolně přizpůsobit)
man mysql
) tak to bude rychlejší, než pouštět N x mysql
.
INSERT INTO `table` (`x`,`y`) VALUES ('x1','y1'), ('x2','y2'), … ('xN','yN');A odeslat do DB a třeba jako nový proces. PS: Nedělejte to pro všechno naráz, 500-1500 by mohlo vycházet nejlépe (záleží na tom jak je DB řádek velký).
Mám program v bashi který načítá data z http. Ty data uložim(wget > soubor) a následně je čtu(cat soubor) a dál separuju - takže cat neco |sed | grep | gawk | gawk | a následně to uložim do db ( | mysql -u user -p -D db) .Ukládání výsledku do souboru je zdržující. Je lepší ho rovnou nasměrovat rourou do filtrů. Je vcelku jedno, kolik jich je, hlavně je nutné se vyvarovat cyklů v bashi. Nejvíc zdržují smyčky ve smyčce, ty by se v bashi vůbec neměly vyskytovat. Je možné, že právě ty jsou největší brzdou. Úloha se dá pohodlně paralelizovat přidáním znaku & za volání bashové funkce. Ovšem v tomto případě bych omezil počet paralelních volání na nějakou rozumnou hodnotu (desítky až tisíce). Hodně zdržují inserty do MySQL po jednom záznamu. Jak už bylo zmíněno, je lepší ukládat např. 500 záznamů jako jednu transakci. Také bych možná zkusil jinou databázi, v tomto případě bych asi vybral Redis (pokud je to možné) a klidně ukládal po jednom záznamu. Je to velmi rychlé. Další proces může eventuálně (pokud to bude nutné) asynchronně záznamy vybírat a po skupinách sázet do MySQL.
root 11217 0.0 0.8 7544 840 pts/2 S 00:31 0:00 grep root 11218 0.0 0.8 9688 836 pts/2 S 00:31 0:00 sed root 11219 0.0 0.8 9688 864 pts/2 S 00:31 0:00 sed root 11220 0.0 0.9 10368 980 pts/2 S 00:31 0:00 gawk root 11221 0.0 2.5 33644 2524 pts/2 S 00:31 0:00 mysql root 11226 0.0 2.0 26644 2048 pts/2 S 00:31 0:00 wget root 11227 0.0 0.8 7544 840 pts/2 S 00:31 0:00 grep root 11228 0.0 0.8 9688 832 pts/2 S 00:31 0:00 sed root 11229 0.0 0.8 9688 860 pts/2 S 00:31 0:00 sed root 11230 0.0 0.9 10368 984 pts/2 S 00:31 0:00 gawk root 11231 0.0 2.5 33644 2520 pts/2 S 00:31 0:00 mysql root 11234 0.0 0.8 9688 836 pts/2 S 00:31 0:00 sed root 11235 0.0 0.8 9688 860 pts/2 S 00:31 0:00 sed root 11236 0.0 0.9 10368 980 pts/2 S 00:31 0:00 gawk root 11237 0.0 2.5 33644 2528 pts/2 S 00:31 0:00 mysql root 11238 0.0 2.0 26644 2048 pts/2 S 00:31 0:00 wget root 11239 0.0 0.8 7544 844 pts/2 S 00:31 0:00 grep root 11240 0.0 0.8 9688 832 pts/2 S 00:31 0:00 sed root 11241 0.0 0.8 9688 864 pts/2 S 00:31 0:00 sed root 11242 0.0 0.9 10368 984 pts/2 S 00:31 0:00 gawk root 11243 0.0 2.5 33644 2524 pts/2 S 00:31 0:00 mysql root 11244 0.0 2.0 26644 2044 pts/2 S 00:31 0:00 wget root 11245 0.0 0.8 7544 840 pts/2 S 00:31 0:00 grep root 11246 0.0 0.8 9688 832 pts/2 S 00:31 0:00 sed root 11247 0.0 0.8 9688 860 pts/2 S 00:31 0:00 sed root 11248 0.0 0.9 10368 980 pts/2 S 00:31 0:00 gawk root 11249 0.0 2.5 33644 2528 pts/2 S 00:31 0:00 mysql root 11250 0.0 2.0 26644 2044 pts/2 S 00:31 0:00 wget root 11251 0.0 0.8 7544 840 pts/2 S 00:31 0:00 grep root 11252 0.0 0.8 9688 832 pts/2 S 00:31 0:00 sed root 11253 0.0 0.8 9688 864 pts/2 S 00:31 0:00 sed root 11254 0.0 0.9 10368 980 pts/2 S 00:31 0:00 gawk root 11255 0.0 2.5 33644 2528 pts/2 S 00:31 0:00 mysql root 11257 0.0 2.0 26644 2044 pts/2 S 00:32 0:00 wget root 11258 0.0 0.8 7544 840 pts/2 S 00:32 0:00 grep root 11259 0.0 0.8 9688 832 pts/2 S 00:32 0:00 sed root 11260 0.0 0.8 9688 864 pts/2 S 00:32 0:00 sed root 11261 0.0 0.9 10368 980 pts/2 S 00:32 0:00 gawk root 11262 0.0 2.5 33644 2524 pts/2 S 00:32 0:00 mysql root 11264 0.0 2.0 26644 2044 pts/2 S 00:32 0:00 wget root 11265 0.0 0.8 7544 840 pts/2 S 00:32 0:00 grep root 11266 0.0 0.8 9688 832 pts/2 S 00:32 0:00 sed root 11267 0.0 0.8 9688 860 pts/2 S 00:32 0:00 sed root 11268 0.0 0.9 10368 984 pts/2 S 00:32 0:00 gawk root 11269 0.0 2.5 33644 2528 pts/2 S 00:32 0:00 mysql root 11271 0.0 2.0 26644 2044 pts/2 S 00:32 0:00 wget root 11272 0.0 0.8 7544 844 pts/2 S 00:32 0:00 grep root 11273 0.0 0.8 9688 836 pts/2 S 00:32 0:00 sed root 11274 0.0 0.8 9688 860 pts/2 S 00:32 0:00 sed root 11275 0.0 0.9 10368 984 pts/2 S 00:32 0:00 gawk root 11276 0.0 2.5 33644 2524 pts/2 S 00:32 0:00 mysql root 11278 0.0 2.0 26644 2048 pts/2 S 00:32 0:00 wget root 11279 0.0 0.8 7544 844 pts/2 S 00:32 0:00 grep root 11280 0.0 0.8 9688 832 pts/2 S 00:32 0:00 sed root 11281 0.0 0.8 9688 864 pts/2 S 00:32 0:00 sed root 11282 0.0 0.9 10368 984 pts/2 S 00:32 0:00 gawk root 11283 0.0 2.5 33644 2528 pts/2 S 00:32 0:00 mysql root 11284 0.0 1.1 16332 1160 pts/0 R+ 00:32 0:00 ps aux root 19216 0.0 3.3 70456 3336 ? Ss Mar24 0:00 sshd: root@pts/2 root 19548 0.0 2.0 19260 2056 pts/2 Ss+ Mar24 0:00 -bash root 26928 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26929 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26930 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26931 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26932 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26933 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26934 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26935 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26936 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2 root 26937 0.0 0.9 10632 920 pts/2 S Mar24 0:00 /bin/bash ./prog2Přijde mi jako že se to docela fláká, vytížení cpu na 00 nic. Zkusim to ještě nenačítat rovnou do mysql a uvidim. Jinak fakt nevim.
grep | sed
je do očí bijící, sed
umí grepovat, zjednodušeně sed -e "/grep-like-regexp/ s/foo/bar/"
nefunguje: sed -e "/hledaneslovo/ s/foo/bar/g"
funguje: grep hledaneslovo | sed s/foo/bar/g
sed -ne "/hledaneslovo/ s/foo/bar/gp"
sed
implicitně vypisuje vše, co dostane, jen zde mění foo na bar.
grep
naopak vypisuje jen řádky s hledaneslovo
grep
lze simulovat sed
em (-n
jako nevypisuj, p
jako vypiš):
$ sed -n -e "/hledaneslovo/p"Vaše (jen odhaduji) varianta vám vypíše řádky s hledaneslovo a foo tam změní na bar, if any.
$ printf "foo\nhledaneslovo foo\nhledaneslovo\n" | grep hledaneslovo | sed -e "s/foo/bar/" hledaneslovo bar hledaneslovoČasto je poptřeba jen vypsat podmíněně řádky, kde (resp. pokud) byla udělána substituce.
$ printf "foo\nhledaneslovo foo\nhledaneslovo\n" | sed -n -e "/hledaneslovo/ s/foo/bar/p" hledaneslovo barale pokud chcete i řádky, kde není foo, tak na řádcích s hledaneslovo uděláte nejdřív substituci, a pak co máte dalším příkazem (tedy nepodmíněně vždy) vypíšete. Příkazy se oddělují středníkem, sdružují se závorkami.
$ printf "foo\nhledaneslovo foo\nhledaneslovo\n" | sed -n -e "/hledaneslovo/ {s/foo/bar/;p}" hledaneslovo bar hledaneslovo
sleep 10
... :D
wget --wait=3 --limit-rate=3K -r -p
http://www.abclinuxu.cz/poradna/programovani/show/331044
Pockat 3 vteriny a stahovar rychlosti 3K/s
a nezahnapne to net.
co posloupnost prikazu jako sed a grep resi minuty, jedno awk vyplivne za vterinu. No to minuty vs vteřiny není pravdauz jsem skutecne videl skript, kde se kombinaci sed a grep a nevim co jeste podarilo nahradit jednim awk a skutecne to vedlo az k takovemu zrychleni. ale je fakt, ze uloha tam puvodne byla celkove spatne resena
Tiskni Sdílej: