Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
Společnost Epic Games vydala verzi 5.7 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Intel vydal 30 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20251111 mikrokódů pro své procesory.
Ř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 sedem je patrně také nesmysl (výstup sedu 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 sedem (-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: