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.
xxx;xx;xxx;xxx;2007-03-28;10:20:05 xxx;xx;xxx;xxx;2007-03-28;16:20:05 xxx;xx;xxx;xxx;2007-03-28;21:20:05 xxx;xx;xxx;xxx;2007-03-28;23:20:05 xxx;xx;xxx;xxx;2007-03-29;00:20:05 xxx;xx;xxx;xxx;2007-03-29;06:20:05 xxx;xx;xxx;xxx;2007-03-29;11:20:05 xxx;xx;xxx;xxx;2007-03-29;14:20:05 xxx;xx;xxx;xxx;2007-03-29;20:20:05 xxx;xx;xxx;xxx;2007-03-30;10:20:05 ------------ ------------ Mám např. tyto proměnné: Datum_start=2007-03-28 Hodina_start=18:02:10 Datum stop=2007-03-29 Hodina_stop=16:21:55Potřeboval bych vypsat všechny řádky od Datum_start -Hodina_start do Datum stop - Hodina_stop. Umím vypsat řádky jen podle datumu: sed -n "/$Datum_start/,/$Datum_stop/ p" Zkoušel jsem: sed -n "/$Datum_start [$Hodina_start]/,/$Datum_stop/ p", ale toto mi nefunguje. Nevím, jak přidat tu druhou proměnnou, aby to vypsalo řádky od $Hodina_start.
user@stroj:~$ awk -F\; '{if ($5>="2007-03-28" && $5<="2007-03-28") print $0}' test.txt
xxx;xx;xxx;xxx;2007-03-28;10:20:05
xxx;xx;xxx;xxx;2007-03-28;16:20:05
xxx;xx;xxx;xxx;2007-03-28;21:20:05
xxx;xx;xxx;xxx;2007-03-28;23:20:05
A podmínky si lze nakombinovat dle libosti..
sed -n "/$Datum_start;$Hodina_start/,/$Datum_stop;&Hodina_stop/p"
Překlep sed -n "/$Datum_start;$Hodina_start/,/$Datum_stop;$Hodina_stop/p"
awk -F\ -v DSTART=$Datum_start -v DSTOP=$Datum_stop '{}' v awk budou promenne Datum_start mapovana na DSTART
user@stroj:~$ awk -F\; -v datstart=$Datum_start -v datstop=$Datum_stop \
'{if ($5>=datstart && $5<=datstop) print $0}' test.txtNeví někdo, jak tam ještě přidat ty hodiny?
awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v hodstop=$hodina_stop '$5 == datstart && $6 == hodstart,$5 == datstop && $6 == hodstop{print}' sample.txt
Mám např. tyto proměnné: datum_start=2007-03-28 hodina_start=18:02:10 datum_stop=2007-03-29 hodina_stop=16:21:55
awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v
hodstop=$hodina_stop '$5 == datstart && $6 == hodstart,$5 == datstop && $6 == hodstop{print}' test.txt
Nezobrazí nic.
Stačí se jen kouknout na podmínky.. "==" není totéž co ">=" nebo ">"
user@neuron-ai ~ $ cat test.txt
1 xxx;xx;xxx;xxx;2007-03-28;10:20:05
2 xxx;xx;xxx;xxx;2007-03-28;16:20:05
3 xxx;xx;xxx;xxx;2007-03-28;21:20:05
4 xxx;xx;xxx;xxx;2007-03-28;23:20:05
5 xxx;xx;xxx;xxx;2007-03-29;00:20:05
6 xxx;xx;xxx;xxx;2007-03-29;06:20:05
7 xxx;xx;xxx;xxx;2007-03-29;11:20:05
8 xxx;xx;xxx;xxx;2007-03-29;14:20:05
9 xxx;xx;xxx;xxx;2007-03-29;20:20:05
10 xxx;xx;xxx;xxx;2007-03-30;10:20:05
user@neuron-ai ~ $ cat oddo
#!/bin/bash
datum_start=2007-03-28
hodina_start=21:20:05
datum_stop=2007-03-29
hodina_stop=20:20:05
awk -F\; -v datstart=$datum_start -v datstop=$datum_stop \
-v hodstart=$hodina_start -v hodstop=$hodina_stop '$5 == datstart && \
$6 == hodstart,$5 == datstop && $6 == hodstop{print}' test.txt
user@neuron-ai ~ $ ./oddo
3 xxx;xx;xxx;xxx;2007-03-28;21:20:05
4 xxx;xx;xxx;xxx;2007-03-28;23:20:05
5 xxx;xx;xxx;xxx;2007-03-29;00:20:05
6 xxx;xx;xxx;xxx;2007-03-29;06:20:05
7 xxx;xx;xxx;xxx;2007-03-29;11:20:05
8 xxx;xx;xxx;xxx;2007-03-29;14:20:05
9 xxx;xx;xxx;xxx;2007-03-29;20:20:05
Problem je v zle naplnenych premennych. Ak tvoj test.txt obsahuje to iste co moj, tak je jasne, ze ti to nepojde, pretoze sa nenajde dany cas (hodina_start).
"Program" samozrejme hlada presny vyskyt retazca. Teda datum/cas musi presne sediet s nejakym datumom/casom v test.txt.
awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v
hodstop=$hodina_stop '$5 >= datstart && $6 >= hodstart,$5 <= datstop && $6 <= hodstop{print}' test.txt
xxx;xx;xxx;xxx;2007-03-28;10:20:05 xxx;xx;xxx;xxx;2007-03-28;16:20:05 xxx;xx;xxx;xxx;2007-03-28;21:20:05 xxx;xx;xxx;xxx;2007-03-28;23:20:05 xxx;xx;xxx;xxx;2007-03-29;00:20:05 xxx;xx;xxx;xxx;2007-03-29;06:20:05 xxx;xx;xxx;xxx;2007-03-29;11:20:05 xxx;xx;xxx;xxx;2007-03-29;14:20:05 xxx;xx;xxx;xxx;2007-03-29;20:20:05 xxx;xx;xxx;xxx;2007-03-30;10:20:05 ------------ ------------ Mám např. tyto proměnné: Datum_start=2007-03-28 Hodina_start=18:02:10 Datum stop=2007-03-29 Hodina_stop=16:21:55Chci vypsat řádky od Datum_start - Hodina_start do Datum stop - Hodina_stop. Problém je, že se Hodina_start a Hodina_stop nemusí přesně shodovat s údaji v souboru test.txt. Nakonec jsem přišel na toto řešení:
#prevede datum a cas v souboru test.txt (napr.2007-03-28;18:02:10)\
#na cislo (napr. 20070328180210) a ulozi do souboru test1.txt
cat test.txt|sed '/-/s///g;/:/s///g;/;/s///5'>test1.txt
datumstart=2007-03-28
hodinastart=18:02:10
#vysledna promenna start bude mit format 20070328180210
start=$(echo $datumstart$hodinastart|sed '/-/s///g;/:/s///g;/;/s///5')
datumstop=2007-03-29
hodinastop=16:21:55
#vysledna promenna stop bude mit format 20070329162155
stop=$(echo $datumstop$hodinastop|sed '/-/s///g;/:/s///g;/;/s///5')
#vypise radky od 2007-03-28 16:20:05 do 2007-03-29 16:20:05
awk -F\; -v datstart=$start -v datstop=$stop\
'{if ($5>=datstart && $5<=datstop) print $0}' test1.txt
Pokud se někomu nelíbí ten cat, tak je to proto, že mi to tyto stránky nechtěli vzít (nepovolený text test.txt).
A jestli má někdo jednodušší řešení, sem s tím. By
test1.txt :
sed 's/[-:]//g;/;/s///5' test.txt > test1.txt
start (a podobně i stop) :
start=${datumstart//-/}${hodinastart//:/}
Tiskni
Sdílej: