abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:11 | Nová verze

    Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.

    |🇵🇸 | Komentářů: 0
    dnes 12:44 | IT novinky

    Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u

    … více »
    Ladislav Hagara | Komentářů: 9
    dnes 12:22 | Komunita

    Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.

    Ladislav Hagara | Komentářů: 2
    dnes 11:22 | IT novinky

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila (𝕏) open-source robota Microduck. Předobjednat jej lze za 340 eur.

    Ladislav Hagara | Komentářů: 1
    dnes 10:55 | Nová verze

    Open-source autonomní AI agent OpenClaw (Wikipedie) byl vydán ve verzi 2026.8.1 aneb 2.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | Nová verze

    Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | IT novinky

    Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.

    Ladislav Hagara | Komentářů: 3
    včera 11:00 | Pozvánky

    Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.

    Petr Krčmář | Komentářů: 4
    včera 10:55 | Nová verze

    Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.

    |🇵🇸 | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (29%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2535 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Podivné chování getline v awk skriptu

    21.10.2021 17:52 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
    Podivné chování getline v awk skriptu
    Přečteno: 469×
    Parsuji výstup ldapsearch z AD a narazil jsem na zvláštní chování getline v awk skriptu. Nedokážu přijít na to, proč druhý výskyt jména "Lukaš" (ano, je tam krátké "a") se nevytiskne:
    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:


    Odpovědi

    21.10.2021 18:46 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Nebolo by lepšie ten ldapsearch urobiť v nejakom high level jazyku, napr pytóne ktorý má priamo knižnicu na LDAP čo rovno aj dekóduje ten base64 na text s diakritikou?
    22.10.2021 07:24 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Chápu, co navrhuješ, ale celkové zadání je takové: bude to součástí jenkins jobu a chceme to zachovat "as much simple as possible", takže využívat pouze již instalované core nástroje. Druhá věc je, že awk je mi prostě v této situaci sympatičtější a tak bych tomu chtěl mimo jiné přijít "na kloub".
    22.10.2021 08:35 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Tiež mám podobný názor na pytón. Ale ak sa ten ldapsearch s Jerkinsom nedá použiť, tak veľa zdaru. Z toho pytónu lezie lepší výstup ktorý nie je treba takto ošetrovať. Ldapsearch trošku zaspal dobu.
    Řešení 1× (Вherzet)
    21.10.2021 21:18 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    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
    debian.plus@protonmail.com
    22.10.2021 07:43 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Díky za řešení.

    Neuvedl jsem původně, že klíč (givenName:) není jediný, u kterého řeším base64 dekódování, takže skript by potřeboval úpravu. Nicméně ještě jednou díky za pomoc.
    Řešení 1× (Вherzet)
    22.10.2021 09:48 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Verzia na študovanie:
    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
    debian.plus@protonmail.com
    Řešení 1× (MakeIranBombedAgain❗)
    22.10.2021 00:00 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu

    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
    
    22.10.2021 07:37 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    @Andrej - díky za obě řešení.

    Z mého úvodního dotazu nevyplynulo, že "givenName:" resp. "givenName::" není jediný klíč, u kterého řeším base64. Ty klíče tam jsou nejméně tři (ještě např. "dn:" a "sn:"). To už zkusím tvůj skript při-ohnout sám :-)

    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á?
    22.10.2021 09:14 X
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Mimochodem, kdyz nakopiruji tvoje reseni do terminalu dotanu:
    /bin/sh: 1: Syntax error: "|" unexpected
    Takze zrovna prenositelne to moc neni..
    Řešení 1× (Вherzet)
    22.10.2021 09:27 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    BASH != SH
    debian.plus@protonmail.com
    22.10.2021 14:01 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    To je v poho. Človek za chvíľu zistí že nie všetky záznamy z ldapsearch sú v UTF, a posunie sa na druhú úroveň zbytočného riešenia.

    Good luck :-)
    22.10.2021 17:18 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu

    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.

    22.10.2021 17:20 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu

    Druhé řešení (Bash) na givenName nezáleží.

    První rešení (AWK) se dá snadno přiohnout, aby se klíč zachoval.

    Řešení 1× (Tomáš Pelc (tazatel))
    25.10.2021 15:17 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
    Rozbalit Rozbalit vše Re: Podivné chování getline v awk skriptu
    Tak jsem se snažil přiohnout tvoje AWK řešení a tady je výsledek:
    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.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.