Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.
Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB
Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.
Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze
… více »Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.
The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.
Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.
Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.
Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.
Mám plain text:
[Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3], [Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3], [Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 18, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 20, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 22, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 24, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 30, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 32, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 34, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 36, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],
A potřeboval bych odstranit řádky výše zvýrazněné kurzívou, aby to vypadalo takto:
[Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3], [Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3], [Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2], [Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1], [Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],
Konkrétně potřebuji porovnávat poslední číselný údaj a v případě souvislého opakování ponechat pouze první a poslední záznam.
Dá se to relativně jednoduše zvládnout pomocí sed či awk? Pokud ne, asi bych to řešil mechanicky v bashi (načítání řádků, porovnávání hodnoty, vymazání nadbytečného řádku a pořád dokola, dokud bude co mazat).
Řešení dotazu:
cat soubor | sort -k8 -u -r >soubor1 tac soubor | sort -k8 -u -r >soubor2 #paste -d '\n' soubor1 soubor2 >vysledek paste -d '\n' soubor1 soubor2 | uniq >vysledek
perl -00 -pe 's/(\N* (\d+)\],\n).*\n(\N* \2\],\n)/$1$3/msg'
perl -ne ' /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'vytiskni řádek jestli se předešlý nebo následující řádek liší v čísle před
],
Ps. samozřejmě by bylo přehlednější napsat Perl script než tento "one-liner"
perl -ne ' /(\d+)\],/; print if 1..1; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'
0],
jinak ho to tiskne, tak bych spíš doporučoval něco jako:
perl -ne 'BEGIN{$pred=-1}; /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1;$pred_radek=$_' #problém by ještě nastal kdyby "poslední" řádek nekončil
\n
, pak by se nevytiskl
sed -re 'H;x;/([0-9]+)\].*\1\]/d'
[Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1], [Date.UTC(2014, 11, 25, 10, 38, 38, 0), 1], [Date.UTC(2014, 11, 25, 10, 40, 40, 0), 1], [Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1], [Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0], [Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0], [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1], [Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0], [Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0], [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1], [Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
[Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1], [Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1], [Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0], [Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0], [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1], [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1], [Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0], [Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0], [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1], [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1], [Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
Tiskni
Sdílej: