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 10:00 | Komunita

    V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    dnes 09:44 | IT novinky

    Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.

    Ladislav Hagara | Komentářů: 7
    dnes 01:11 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.6.

    Ladislav Hagara | Komentářů: 0
    dnes 00:55 | Nová verze

    Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

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

    Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

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

    Americká filmová studia Walt Disney a Universal Pictures podala žalobu na provozovatele populárního generátoru obrázků pomocí umělé inteligence (AI) Midjourney. Zdůvodňují to údajným porušováním autorských práv. V žalobě podané u federálního soudu v Los Angeles označují firmu za „bezednou jámu plagiátorství“, neboť podle nich bez povolení bezostyšně kopíruje a šíří postavy z filmů jako Star Wars, Ledové království nebo Já, padouch, aniž by do nich investovala jediný cent.

    Ladislav Hagara | Komentářů: 1
    včera 18:33 | IT novinky

    Ultra Ethernet Consortium (UEC), jehož cílem je optimalizace a další vývoj Ethernetu s důrazem na rostoucí síťové požadavky AI a HPC, vydalo specifikaci Ultra Ethernet 1.0 (pdf, YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | IT novinky

    Francouzský prezident Emmanuel Macron chce zakázat přístup na sociální sítě pro děti do 15 let. Francie podle něj tento krok udělá sama do několika měsíců, i pokud se na něm neshodnou další státy Evropské unie. Reaguje tak na úterní vraždu vychovatelky, kterou ve východofrancouzském městě Nogent pobodal 14letý mladík. Jednotlivé sociální sítě podle něj mají možnost věk ověřit a vymáhat zákaz pomocí systémů na rozpoznávání tváří.

    Ladislav Hagara | Komentářů: 9
    včera 05:11 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,742 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 165 místo. Karolina, GPU partition klesla na 195. místo a Karolina, CPU partition na 421. místo. Další přehledy a statistiky na stránkách projektu.

    Ladislav Hagara | Komentářů: 0
    10.6. 22:33 | Nová verze

    Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 4
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (31%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 254 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Spojení řádků označených čísly

    20.3.2010 12:15 Pan Mantinel
    Spojení řádků označených čísly
    Přečteno: 774×
    Zdravím, měl bych dotaz, vyfiltroval jsem si pomocí grepu řádky obsahující slova unfinished a resumed, výpis vypadá takto:
    28135: open("/etc/lib"map.conf3", O_RDONLY, (unfinished ...)
    28131: open("/etc/lib"map.conf12", O_RDONLY, (unfinished ...)
    28131: (... open resumed)) = 0
    28135: (... open resumed)) = -1 ENOENT (No such file or directory)
    
    A potřeboval bych řádky se stejným počátečním číslem spojit do jednoho, aby výstup vypadal takto:
    28135: open("/etc/lib"map.conf3", O_RDONLY, (unfinished ...)28135: (... open resumed)) = -1 ENOENT (No such file or directory)
    28131: open("/etc/lib"map.conf12", O_RDONLY, (unfinished ...)28131: (... open resumed)) = 0
    
    Tuším způsob, jak to třeba v awk udělat (začít u prvního řádku a porovnávat $1 s ostatními, když se najde shoda, vytisknout), ale vůbec mi nenapadá, jak to nakódit (s awk teprve začínám) a navíc mi tenhle způsob přijde neefektivní a náročný na čas.

    Odpovědi

    20.3.2010 12:44 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    Jestli se celý ten výstup vejde do paměti, tak bych to udělal v perlu:
    my %line_pairs;
    while (my $line = <>) {
        chomp $line;
        my @fields = split ':', $line;
        my $num = shift @fields;
        $line_pairs{$num} .= join ':', @fields;
    }
    
    for my $key (sort keys %line_pairs) {
        print $line_pairs{$key}, "\n";
    }
    
    Možná trošku špatně, psáno z hlavy, netestováno.
    20.3.2010 12:57 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    AWK řešení, také se text musí vejít do paměti. Testováno :-)
    {
    	i = $1
    	gsub(/:/, "", i)
    	lines[i] = lines[i] $0 " "
    }
    
    END {
    	for (i in lines) {
    		print lines[i]
    	}
    }
    
    kouby avatar 20.3.2010 13:14 kouby | skóre: 27 | blog: init | Praha
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    awk '{if($1 in a){print a[$1]""$0;delete a[$1];}a[$1]=$0}' vstup
    That's thirty minutes away. I'll be there in ten.
    20.3.2010 13:44 Pan Mantinel
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    Díky moc všem, už mi to trochu objasnilo, jak se vlastně s awk a perlem pracuje. Zatím mi na na první pohled na pochopení přijdou nejjednodušší obě řešení v awk, takže zkusím pořádně pochopit ty.
    20.3.2010 14:58 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    Jestli se každé číslo řádku objeví právě dvakrát, je koubyho řešení lepší. To moje lze každopádně zjednodušit na
    {
    	lines[$1] = lines[$1] $0 " "
    }
    
    END {
    	for (i in lines) {
    		print lines[i]
    	}
    }
    
    Předtím jsem totiž zapomněl, že pole v AWK mohou jako klíče používat libovolné řetězce.
    wamba avatar 20.3.2010 15:55 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    jak se vlastně s awk a perlem pracuje.
    Chcete si to ozkoušet a pak si vybrat. Mně se třeba pracuje lépe s perlem (je univerzálnějším nástrojem než awk, ale uznávám, že může ze awk může vypadat přehledněji).

    Samozřejmě v perlu by to šlo taky napsat zkráceně

    perl -ane 'chomp ;$line{$F[0]} .= $_; END{print $_,"\n" foreach values(%line)}'
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    20.3.2010 16:32 deadmail
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    Vo vseobecnosti je najrychlejsie subor najprv utriedit a potom staci porovnavat za sebou iduce riadky. Staci si teda pamatat len rovnako zacinajuce riadky.

    sort subor | awk 'NR == 1 {last_id=$1;last=$0} NR > 1 {if ($1 == last_id) {last = last$0} else {print last; last=$0; last_id=$1}} END {print last}'

    Ak je subor vysledkom prikazu
    grep
    , tak uz asi utriedeny je ;-)
    25.3.2010 17:19 pluto
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    a ako by sa do takeho vyrazu dala zakomponovat podmienka nech to spaja len riadky v ktorych sa to unfinished ... a open resumed vyskytuje ?
    25.3.2010 20:48 deadmail
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    sort subor | awk 'NR == 1 {last_id=$1;last=$0} NR > 1 {if (($1 == last_id) && ($0 ~ "unfinished|open resumed")) {last = last$0} else {print last; last=$0; last_id=$1}} END {print last}'
    25.3.2010 22:56 Nonsens
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    ja len tak...funguje aspon jedna moznost? :DD
    26.3.2010 09:11 pluto
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    nie uplne ale myslim ze sa to z toho bude dat poskladat :D
    27.3.2010 13:35 Nonsens
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    a ktora moznost je asi taka najidealnejsia?
    27.3.2010 17:10 hizo
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    ja by som to tiez potreboval a v awk pracovat neviem. takze ak mam riadky: 3733 execve("/bin/ls", ["ls", "/etc/anacrontab", "/etc/blkid.tab", "/etc/crontab", "/etc/crypttab", "/etc/fstab", "/etc/mtab"], [/* 38 vars */] < unfinished ...>
    3733 <... execve resumed> ) = 0
    3735 execve("/bin/sed", ["sed", "-n", "1p"], [/* 38 vars */] < unfinished ...>
    3735 <... execve resumed> ) = 0
    mohol by sem niekto napisat riesenie v awk aby mi to spojilo riadky ktore si odpovedaju tymi zaciatocnymi cislami?dakujem
    27.3.2010 15:42 hizo
    Rozbalit Rozbalit vše Re: Spojení řádků označených čísly
    prosim vas a neda sa to spravit cisto sedmi a grepom??ze napriklad cely vypis suboru budem mat ulozeny v premennej a neda sa to par grepmi a sedmi pospajat??

    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.