Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.
Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si
… více »Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do
… více »Byl vydán LineageOS 24 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 24 je založený na Androidu 17.
Společnost Valve publikovala na svém GitLabu nákresy a schémata zapojení headsetu Steam Frame. Pro nekomerční účely.
Soutěž Pwn2Own Ireland 2026 skončila 9. října. Bezpečnostní výzkumníci získali celkem 1 262 000 dolarů na odměnách. Během soutěže bylo předvedeno zneužití 98 zero-day zranitelností. Testování zahrnovalo různé kategorie zařízení a software. Výzkumníci předváděli prakticky fungující útoky podle pravidel soutěže. Výsledky následně slouží výrobcům při přípravě oprav. Mezi pokořenými jsou: Samsung Galaxy S26, OpenAI Codex, Oracle Autonomous AI Database, Google Pixel 10, u iPhone 17 neuspěli.
Programovací jazyk Python byl vydán v nové verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
), kdybych se někdy dostal k systému kde grep volbu -o nepodporuje.
Malý příklad, mám soubor test.txt, který obsahuje:
bla <a href="bla">bla</a> bla <a href="bla">bla</a> <a href="bla">bla</a> bla <a href="bla">bla</a> bla <a href="bla">bla</a>Chci vypsat všechny odkazy v něm (tedy adresy, to je jedno). S použitím grep -o je to jednoduché:
[mikos@tauri ~]$ grep -o '<a [^>]*>' test.txt <a href="bla"> <a href="bla"> <a href="bla"> <a href="bla"> <a href="bla">Ovšem jak na to se sedem? Zkoušel jsem toto:
[mikos@tauri ~]$ sed -n 's/.*\(<a [^>]*>\).*/\1/gp' test.txt <a href="bla"> <a href="bla"> <a href="bla">Jenže jak je vidět, to vypíše pouze jeden výskyt odkazu na řádku, jelikož ona .* sežere ty ostatní výskyty. Je tu nějaký sed-guru, který by poradil co s tím?
Upozorňuju, že to s těmi odkazy je jen příklad, jde mi prostě o obecnou náhradu za grep -o (fungující naprosto stejně jako grep -o, tedy nestojím o žádné hacky jen pro konkrétní příklad).
Prostě chci sed, a to pokud možno jednoduše (viděl jsem už řešení, ale byl to ošklivý sed skript na několik řádek, to nechci).
Neexistuje v sedu prostě příkaz jako "vypiš pouze matching regexp"? Print (tedy 'p') vypisuje celý řádek co jsem tak zkoušel
david@amd64 ~ $ cat lol bla <a href="bla">bla</a> bla <a href="bla">bla</a> <a href="bla">bla</a> bla <a href="bla">bla</a> bla <a href="bla">bla</a> david@amd64 ~ $ sed -e 's/.*\(<a [^>]*>\).*/\1/gp' lol <a href="bla"> <a href="bla"> <a href="bla"> <a href="bla"> <a href="bla"> <a href="bla">
sed -e '/<a/ s/.*\(<a [^>]*>\).*/\1/gp' lolvyhledává to jen řádky s "
<a" a vyjde to prý mnohem rychleji.
Jen doufam že se nějaké skutečné řešení najde (hlavně jednoduché... jak říkam už jsem řešení viděl, ale to byl sed skript na několik řádek a o to fakt nestojim).
john@turion ~ $ cat test <a href="1"> xxx <a href="2"> dsjhfsk <a href="3">\bla mame tu link <a href="4"> a tady taky <a href="5"> john@turion ~ $ cat test | sed 's/>/>\n</g; s/</\n</g' | sed -n '/^<a href=".*">/p' <a href="1"> <a href="2"> <a href="3"> <a href="4"> <a href="5">A nebo abys netvrdil, že je to jednorázový konkrétní hack, tak lze si zařídit jednoduchoučký skriptík
grep-o:
#! /bin/sh sed "s/\($1\)/\n\1\n/g" $2 | sed -n "/$1/p"a teď:
john@turion ~ $ ./grep-o '<a [^>]*>' test <a href="1"> <a href="2"> <a href="3"> <a href="4"> <a href="5"> john@turion ~ $ echo "<a hhhh> <b jjjj> <a xxx>" | ./grep-o '<a [^>]*>' - <a hhhh> <a xxx>
sed -e "s/\($1\)/\n\1\n/g" -ne "/$1/p" souborje kratší (a doufám, že funguje, hehe... zrovna to nemůžu ověřit. ale řekl bych, že jo).
Ale jo, určitě to moje jde napsat i nějak jinak, jen tak mě napadá
sed -e "s/\($1\)/\n\1\n/g" "$2" | grep "$1"
Ale pořád to není řešení problému, rpotože to funguje jen a pouze pokud vím, co najdu. Tedy abych to upřesnil - mohl bych např. chtít hledat ne celý odkaz, ale jen to co je v href="". Tedy něco takového:
sed 's/<a [^>]*href="\([^"]*\)"[^>]*>/\n\1\n/g' test.txtTo sice krásně funguje, ale pak už nedokážu sestavit ten druhý sed (či grep), protože prostě nemůžu vědět co v tom href="" bude uloženo. Tedy i když právě si uvědomuju, že tohle bych asi neudělal ani s grep - o
Každopádně je nějaké řešení i pro tento případ? Ono by to tedy samozřejmě šlo udělat více sedy v koloně, ale neexistuje i nějaké hezší/čistší/jednodušší řešení? Prostě něco jako příkaz print v sedu, ale aby vypsal vždy pouze třeba \1 a ne celý řádek.
[mikos@tauri ~]$ awk '{match($0, /<a [^>]*href="([^"]*)"[^>]*>/, arr); print arr[1]}' test.txt
bla1a
bla2
bla3a
Jenže jak je vidět, příkaz "match" bere vždy jen první výskyt daného regexpu (tedy jako sed 's/pattern//', prostě bez onoho obligátního 'g'). Navíc co jsem tak koukal, je onen třetí argument u příkazu match také jen GNU rozšířením (tedy pouze v gawku).
To to opravdu není v sedu ani v awku nějak elegantně a jednoduše řešitelné? To bych opravdu na takovou blbost musel používat python (nebo nedejbože perl, fuj :-P)?
grep -o bude vycházet trošku složitěji, proto asi grep tuto volbu má. Tak už to většinou bývá, že náhrada za něco bývá komplikovanější.
Nejjednodužší, nejpřehlednější a funkční řešení zadaného úkolu grep -o mi připadá (viz. výše) udělat si jednořádkový miniskriptík s obsahem :
sed -e "s/\($1\)/\n\1\n/g" "$2" | grep "$1"a pak ten miniskriptík volat s parametry :
# miniskriptik hledany_retezec v_souboruAle určitě k zadanému cíli vede cest více.
Tiskni
Sdílej: