Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.
re="4718|4717";
#main ######################################################
$/=undef;
while ($file=(<>)) # cteni z prikaz radky
{
$a="\n".$file; #kvuli split \n2008
chop ($a); #kvuli print "$pole[$i]\n"; - zbavim se posledniho znaku enter
@pole=split (/\n2008/,$a) ;
$delka_pole=@pole;
$i=1;
while ($delka_pole > $i)
{
if ($pole[$i]=~/$re/)
{
$pridej ="2008" ;
$pridej =$pridej.$pole[$i]."\n";
$" = ""; #"########################### ok
push (@vystup, $pridej);
}
$i++ ;
}
}
ale pokud ti jde o počet úspěchů nalezení řetězce, tak by to šlo takto:
chomp (my @var = STDIN>); my $times = grep (/se/m, @var); print "$times\n";
perl -0777 -e 'print map "2008$_", grep /4718|4717/, split/\n2008/, <>' soubor_s_daty.dat
perl -0777 -e 'print grep /4718|4717/, split/\n(?=2008)/, <>' soubor_s_daty.dat
$,="\n####\n"; pred ten print.
tak to pomalu chapu -0777 nacte data jako jeden zaznam -e skript je v radce (?=2008) si zapamatuje 2008 a do pole to da vcetne toho 2008 (nezahodi tuto cast oddelovace) nechapu proc: 1. jsou carky mezi prikazy (jde o oddelovac vice prikazu na radce?) 2. proc je poradi prikazu 1.print 2.split 3.<> diky!
muzete mi nekdo vysvetlit nasledujici: time cat soubor|perl -0777 -e '$,="\n", print grep /40030/, split/\n(?=2008)/, <>' real 0m1.137s user 0m0.760s sys 0m0.510s time cat soubor|perl -0777 -e 'print grep /40030/, split/(?=\n2008)/, <>' real 0m8.116s user 0m7.800s sys 0m0.410s
print(grep(/40030/, split(/(?=\n2008)/, <>)))Takze to neni posloupnost prikazu, ale jsou to vlozene prikazy. Operator <> nacte cely soubor (protoze mame $/=undef v dusledku -0777). Provadime split na zaklade regexpu /(?=\n2008)/. Kdybychom pouzili jako oddelovac poli jenom /\n2008/, pak ztratili bychom tuto cast zaznamu (prave proto v mem prvnim reseni je map "2008$_", ktere vraci tuto cast zpatky). Kdyz pouzijeme look-ahead assertion (?=\n2008), pak vlastne provadime split v kazdem bode retezce, za kterym nasleduje \n2008, ale \n2008 neni brano jako soucast oddelovace poli. Vysledek splitu je seznam zaznamu, ktery je predavany jako druhy argument grepu. grep prochazi vsechny zaznamy tohoto seznamu a hleda jenom vyhovujici regexpu /40030/. Funguje nejak takto:
for $_ (seznam_zaznamu_ktery_vygeneroval_split) {
if ( $_ =~ /40030/ ) {
nechame_tento_zaznam_ve_vysledku;
} else {
zahodime_tento_zaznam;
}
}
Nakonec, print vytiskne vsechny nalezene zaznamy a vlozi mezi ne $, (v nasem pripade prazdny radek).
$, = "\n"; $soubor = <>; @vsechny_zaznamy = split(/(?=\n2008)/, $soubor); @jenom_obsahujici_regexp = grep(/40030/, @vsechny_zaznamy); print @jenom_obsahujici_regexp;
ad 0) to mereni casu jsem delala nekolikrat. ad 1) ted je mi to jasne - vlozene prikazy - proto carka a proto to poradi. nakonec jsem tam jeste pridala sort (jako v mem puvodnim skriptu) casove je to +- stejne (muj puvodni vs vas) perl -0777 -e 'print sort grep /neco/, split/^(?=2008)/m, <>' velike diky za vysvetleni!
Dobrý den,
obdobný problém řeším tak, že pomocí tr -d '\r\n' (pro dos) spojím vše do jednoho řádku a následně sed-em rozřežu, na např. pro grep, použitelné řádky, tj. z mého pohledu standardně/typově začínající nebo končící. Pokud mi pošlete vzorek s konkrétním popisem požadavku, mohu se na to zkusit podívat.
jsksed 's/^2008/\x002008/' soubor_s_daty.dat | grep -z 'co_hledame' | tr -d '\0', ale i tak je to 4-krat pomalejsi nez reseni v Perlu.
Tiskni
Sdílej: