Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.
Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.
Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento
… více »Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se
… více »Někteří zákazníci O2 mohou aktuálně zaznamenat zhoršenou dostupnost internetových služeb. Na odstranění potíží se pracuje [Facebook].
PyPy (Wikipedie), tj. implementace Pythonu v RPythonu, alternativa CPythonu v C, byla vydána v nové major verzi 8.0.0. Podporuje Python 2.7, 3.11 a 3.12.
V jádře Linux byly nalezeny a v upstremu ve verzích 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 a 7.2.4 již opraveny 4 kritické zranitelnosti umožňující eskalaci práv: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) a DiagSpill (CVE-2026-74469).
Německá policie a celníci zneužívají ke čtení zpráv komunikačních aplikacích WhatsApp, Signal, Telegram nebo Threema velice jednoduchý trik, který nevyžaduje prolomení šifrování, spear phishing, odposlech SMS či jinou technicky náročnou metodu. Příslušníkům státního aparátu pouze stačí získat krátký přístup k odemčenému telefonu a prostřednictvím QR kódu propojit účet s oficiální desktopovou nebo webovou aplikací v policejním
… více »Počítačová hra Factorio (Wikipedie) nově běží nativně na ARM64 Linuxu a headsetu Steam Frame.
echo -e "givenName:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel" | awk '{ v = "" } { if ($1 ~ "::") { "echo "$2" | base64 -d" | getline v; gsub (/::/, ":", $1); print $1, v } else { print $0 }}'
givenName: Lukaš
givenName: Tomáš
givenName:
givenName: Karel
Máte někdo nějaké vysvětlení?
Jak upravit skript, aby fungoval i v takovém případě podle očekávání?
Díky
Řešení dotazu:
echo -e "givenName:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel"|while read line; do items=(`echo $line`); define=${items[0]}; if [ "${define:10:1}" = ":" ]; then echo "${define:0:10} `echo ${items[1]}|base64 -d`"; else echo $line; fi; done
keys="givenExtra givenName";
echo -e "givenExtra:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel"|
while read line; do
items=(`echo $line`);
define=${items[0]};
for key in $keys;
do
if [ "$define" = "$key::" ]; then
echo "$key: `echo ${items[1]}|base64 -d`";
break;
fi
if [ "$define" = "$key:" ]; then
echo $line;
break;
fi;
done;
done
Jednoriadková verzia:
keys="givenExtra givenName"; echo -e "givenExtra:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel"| while read line; do items=(`echo $line`); define=${items[0]}; for key in $keys; do if [ "$define" = "$key::" ]; then echo "$key: `echo ${items[1]}|base64 -d`"; break; fi if [ "$define" = "$key:" ]; then echo $line; break; fi; done; done
S awk:
echo -e 'givenName:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel' \
| awk 'BEGIN { FS = "(\\s|:)+"
OFS = ": "
b64 = "base64 -d" }
/^givenName::/ { print $2 |& b64
close(b64, "to")
b64 |& getline $2
close(b64) }
1'
Bez awk:
echo -e 'givenName:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\ngivenName: Karel' \
| while read gn name; do
[[ "$gn" = *'::' ]] &&
echo "${gn::-1}" "$(base64 -d <<< "$name")" ||
echo "$gn" "$name"
done
Dokázal bys mi objasnit, proč to moje původní řešení funguje tak nederministicky? Proč se proměnná "v" v případě druhého výskytu jména nenaplní správně, ale zůstane prázdná?
/bin/sh: 1: Syntax error: "|" unexpectedTakze zrovna prenositelne to moc neni..
Asi to špatně kopíruješ nebo máš špatný shell nebo obojí. Problém s řádkem začínajícím | jistě není tak těžké vyřešit.
Druhé řešení (Bash) na givenName nezáleží.
První rešení (AWK) se dá snadno přiohnout, aby se klíč zachoval.
ADST="givenName:: THVrYcWh\ngivenName:: VG9tw6HFoQo=\ngivenName:: THVrYcWh\nsn:: VG9tw6HFoQo=\ngivenName: Karel\nsAMAccountName:: xIxlc8WlbcOtxZkK"
echo -e "$ADST" \
| awk 'BEGIN { FS = ": "; OFS = ": "; b64 = "base64 -d" }
{ if ($1 ~ ":") { print $2 |& b64; close(b64, "to"); b64 |& getline $2; close(b64) }}
{ gsub (/:/, "", $1); print $1, $2 }'
Předpokládám, že by to šlo vyřešit ještě elegantněji, ale na to už nestačí moje současné znalosti AWKu.
Tiskni
Sdílej: