Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
a a a b b b c c c d d dpotrebuji dostat vsechny a-c. chci to delat zpusobem
awk '/c/||/a/,/c/ {print}' #to chodi
awk '/a/,/c/||/c/ {print}' #ale nechodi proc?
otazka. c. 2:
jak udelat obdobnou ulohu pomoci sedu?
diky!
awk '/[a-c]/'?
Ad 2.) sed '/[^a-c]/d'
Ovšem úplně nejrozumnější (ovšem tohle vypadá jako školní úloha
) je použít grep '[a-c]'
Čárka v awk odděluje dva vzory a příslušná akce se vykoná pro rozsah od řádku, který vyhovuje prvnímu vzoru, do nejbližšího řádku, který vyhovuje druhému vzoru (včetně). Pokud se najde další řádek vyhovující prvnímu vzoru, tak se začne znovu.
'/c/||/a/,/c/' vybírá rozsahy od řádku obsahujícího a nebo c do prvního řádku obsahujícího c.
'/a/,/c/||/c/' vybírá rozsahy od řádku obsahujícího a do prvního řádku obsahujícího c.
Hint: podívej se odkud kam ty podmínky platí
aha. jde mi to vytisknout vsechny radky od radku obsahujiciho a vcetne do c vcetne vsech dalsich jeste obsahujicich c priklad: ---soubor--- a a a b 1111 22222 3333333 1111 22222 3333333 b b cccc cccc cccc d d cc --tisk:------------------------- a a a b 1111 22222 3333333 1111 22222 3333333 b b cccc <- awk pro /a/,/c/ skonci tady cccc cccc <- chci skoncit tisk u tohoto radku d <- toto a dal uz nechci tisknout d cc --------- tj. /a/,/c/ ale neskoncit u 1. c, tisknout i dalsi c ktere navazuji.
Jo, pro takovou úlohu je awk ideální, mně přijde nejjednodušší pomoct si stavovou proměnnou. Možností je víc.
awk '!s && /a/ { s = 1 }
s && /c/ { s = 2 }
s == 2 && !/c/ { exit }
s { print }'
Tohle začne vypisovat na a a skončí při posledním c.
# Když narazím na "a" nebo posléze na "c", tak si to
# poznamenám
!stav && /a/ { stav = "nalezeno a" }
stav == "nalezeno a" && /c/ { stav = "nalezeno c" }
# Jsem za "c", ale na řádku už "c" není -> konec zpracování
stav == "nalezeno c" && !/c/ { exit }
# stav je nastaven, takže jsem už našel "a" takže řádek
# vytisknu
stav { print }
awk zpracovává pravidla v pořadí, v jakém je dostane a pokud je splněná podmínka, tak vykoná akci (a to může ovlivnit platnost dalších podmínek). Jestli ti není jasný, jak awk funguje, tak pomůže man nebo nějaká literatura.
!stav &&
?!stav má význam ve chvíli, kdy už je stav "nalezeno c". Kdyby tam nebylo, tak by třeba na vstup,
a b c a dawk odpovědělo stejně, ale když tam je, tak skončí po opsání třetího řádku.
V té původní verzi se testovalo s je/není rovno nule a stejně v awk funguje je/není prázdný řetězec. Neinicializovaná proměnná má hodnotu 0 nebo prázdný řetězec podle kontextu.
s == 0 && /a/ { s = 1 }
# v tomhle případě tady může být i s == 1
s != 0 && /c/ { s = 2 }
s == 2 && !/c/ { exit }
s != 0 { print }
Tiskni
Sdílej: