Ubuntu Cinnamon bude od Ubuntu 23.04 oficiální odnoží Ubuntu (návrh, schválení).
Byla vydána nová major verze 5.0 účetního softwaru GnuCash (Wikipedie). Ve formátu Flatpak je již k dispozici na Flathubu.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Alwa's Awakening (ProtonDB).
Byla vydána verze 3.28.0 2D CAD (computer-aided design) softwaru QCAD (Wikipedie). Přehled novinek v Changelogu.
Změna ve vedení společnosti SUSE. Dosavadní CEO Melissa Di Donato odstoupila. Od 1. května je novým CEO Dirk-Peter van Leeuwen, bývalý Senior Vice President a General Manager ve společnosti Red Hat.
CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag). Vydána byla nová major verze 10 (aktuálně 10.4.0). Přehled novinek v Changelogu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch OTA-1 Focal založené na Ubuntu 20.04 Focal Fossa.
Společnost Red Hat slaví 30 let.
Ve věku 91 let zemřel izraelský informatik Ja'akov Ziv, spolutvůrce bezztrátových kompresních algoritmů LZ77, LZ78 a LZW (Lempel–Ziv–Welch).
Byla představena nová Arduino deska Arduino UNO R4 s 32bitovým MCU RA4M1 (Arm Cortex-M4). Desku lze zatím získat pouze v rámci early access programu.
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: