Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.
Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.
Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.
Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.
Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantovou výměnu klíčů.
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: