Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).
Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.
Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
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: