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í
×

včera 16:22 | Nová verze

Byla vydána verze 0.11.0 softwaru pro statistickou analýzu dat GNU PSPP (Wikipedie), svobodné alternativy k proprietárnímu softwaru IBM SPSS Statistics (Wikipedie). Vedle několika vylepšení a oprav chyb jsou řešeny také 2 bezpečnostní chyby CVE-2017-10791 a CVE-2017-10792. O týden později byla vydána verze 1.0.0 přinášející pouze aktualizaci překladů. Proč verze 1.0.0 a ne například 0.11.1? Dle vývojářů jsou důvody následující:

… více »
Ladislav Hagara | Komentářů: 0
včera 10:35 | Komunita

Na blogu Oracle se objevila zpráva o tom, že plánovaná verze Java EE 8 bude uvolněna jako open source (referenční implementace a compatibility kit). V současné době je uvolněna jen Java SE (standard edition) pod licencí GPLv2 v podobě OpenJDK (Open Java Development Kit), kterou začal v roce 2006 uvolňovat Sun.

Max | Komentářů: 4
21.8. 23:55 | IT novinky

Google na YouTube oficiálně představil Android 8.0 Oreo. Přehled novinek v příspěvku na blogu věnovaném vývojářům.

Ladislav Hagara | Komentářů: 26
21.8. 16:44 | Zajímavý článek

Po téměř 3 měsících od vydání třetího čísla publikoval Michal Špaček na svých stránkách čtvrté číslo newsletteru věnovanému bezpečnosti, bezpečnému vývoji převážně webových aplikací a bezpečnosti uživatelů. Jedná se současně o číslo poslední: "Nepíše se mi to lehce, a trvalo to, než jsem to ze sebe dostal, ale tohle je poslední newsletter v této podobě. Ani jsem ho nestihl pojmenovat a už jsem ho zabil. Nezbývá mi tolik času, abych každou událost, novinku a změnu v prohlížeči detailně popisoval tak, jak bych v newsletteru chtěl, mrzí mě to".

Ladislav Hagara | Komentářů: 2
21.8. 07:00 | Nová verze

Byla vydána diaspora* ve verzi 0.7.0.0. Jedná se o svobodný software, který slouží jako osobní webový server pro poskytování služeb sociální sítě (Wikipedie). Přehled novinek v příspěvku na blogu a na GitHubu. Sociální síť diaspora* byla před pěti lety předána komunitě.

Ladislav Hagara | Komentářů: 0
21.8. 06:00 | IT novinky

Společnost Hardkernel stojící za jednodeskovými počítači ODROID představila na YouTube minipočítač určený pro domácí cloud ODROID-HC1 vycházející z ODROID-XU4. Minipočítač s kovovou krabičkou, do které stačí vložit 2 a půl palcový disk, lze koupit za 49 dolarů. ODROID-HC1 je stohovatelný.

Ladislav Hagara | Komentářů: 39
20.8. 16:22 | Nová verze

Byl vydán DB Browser for SQLite (sqlitebrowser) ve verzi 3.10.0. Nejnovější stabilní verze této grafické nadstavby nad relačním databázovým systémem SQLite (Wikipedie) přináší například integraci s DBHub.io, tj. platformou pro sdílení SQLite databází. Podrobnosti na GitHubu.

Ladislav Hagara | Komentářů: 2
20.8. 08:00 | IT novinky

Andy Rubin, spoluzakladatel společnosti Android, jež byla v roce 2005 koupena Googlem, nyní CEO společnosti Essential Products, oznámil předprodej chytrého telefonu Essential. Telefon se začne rozesílat 1. září. Cena telefonu je 699 dolarů. Cena telefonu současně s 360° kamerou s rozlišením 4K byla stanovena na 749 dolarů. Kameru, v budoucnu i další příslušenství, lze k telefonu připojit pomocí konektoru s magnety.

Ladislav Hagara | Komentářů: 1
19.8. 13:44 | Zajímavý software

Evropská komise vydala novou verzi 1.4.0.1 svého open source v Javě naprogramovaného softwaru pro online průzkumy EUSurvey. Online dotazníky lze vytvářet na stránkách Evropské komise nebo si lze software stáhnout (zip a war) a nainstalovat lokálně. Zdrojové kódy jsou k dispozici pod licencí EUPL (European Union Public Licence).

Ladislav Hagara | Komentářů: 0
18.8. 23:55 | Komunita

Ubuntu 17.10 (Artful Aardvark) bude ve výchozím stavu zobrazovat Dok (Launcher). Jedná se o rozšíření GNOME Shellu Ubuntu Dock. To bylo forknuto z rozšíření Dash to Dock. Ukázka na YouTube [reddit].

Ladislav Hagara | Komentářů: 8
Těžíte nějakou kryptoměnu?
 (5%)
 (2%)
 (18%)
 (76%)
Celkem 374 hlasů
 Komentářů: 21, poslední 13.8. 09:57
    Rozcestník

    Dotaz: multiline sed? Najdi, porovnej a vymaž řádek

    2.1.2015 22:42 JanM | skóre: 28
    multiline sed? Najdi, porovnej a vymaž řádek
    Přečteno: 382×

    Mám plain text:

                    [Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3],
                    [Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3],
                    [Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 18, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 20, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 22, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 24, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 30, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 32, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 34, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 36, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],

    A potřeboval bych odstranit řádky výše zvýrazněné kurzívou, aby to vypadalo takto:

                    [Date.UTC(2014, 11, 23, 5, 12, 0, 0), 3],
                    [Date.UTC(2014, 11, 23, 5, 14, 0, 0), 3],
                    [Date.UTC(2014, 11, 23, 5, 16, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 26, 0, 0), 2],
                    [Date.UTC(2014, 11, 23, 5, 28, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 38, 0, 0), 1],
                    [Date.UTC(2014, 11, 23, 5, 40, 0, 0), 0],

    Konkrétně potřebuji porovnávat poslední číselný údaj a v případě souvislého opakování ponechat pouze první a poslední záznam.

    Dá se to relativně jednoduše zvládnout pomocí sed či awk? Pokud ne, asi bych to řešil mechanicky v bashi (načítání řádků, porovnávání hodnoty, vymazání nadbytečného řádku a pořád dokola, dokud bude co mazat).


    Řešení dotazu:


    Odpovědi

    3.1.2015 01:16 pavele
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    Tedy v bashi bych to řešil primitvně, například:
    cat soubor | sort -k8 -u -r >soubor1
    tac soubor | sort -k8 -u -r >soubor2
    #paste -d '\n' soubor1 soubor2 >vysledek
    paste -d '\n' soubor1 soubor2 | uniq >vysledek
    
    3.1.2015 13:55 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    To je trochu moc drastická metoda ;-)

    On ten plain text má stovky kB a číselný údaj v posl. sloupci se pohybuje mezi 0 - 5, střídavě nahoru a dolu. "unique" to pročistí tak důkladně, že z těch stovek kB zbude pár řádků.
    wamba avatar 3.1.2015 02:39 wamba | skóre: 37 | blog: wamba
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    napsáno "nehezky" pomocí Perl-u
    perl -00 -pe 's/(\N* (\d+)\],\n).*\n(\N* \2\],\n)/$1$3/msg'
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    3.1.2015 18:14 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    Funguje na výše uvedený příklad, ale už ne obecně na velké množství dat. Pravda, to jsem v dotazu nezdůraznil.
    Řešení 1× (JanM (tazatel))
    wamba avatar 3.1.2015 19:41 wamba | skóre: 37 | blog: wamba
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    tak třeba tohle by mohlo fungovat i na velké soubory
    perl  -ne ' /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'
    
    vytiskni řádek jestli se předešlý nebo následující řádek liší v čísle před ],

    Ps. samozřejmě by bylo přehlednější napsat Perl script než tento "one-liner"
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    5.1.2015 21:47 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    Pěkné. Pro úplnost jsem přidal jeden print, aby to vytisklo i první řádku souboru:
    perl  -ne ' /(\d+)\],/; print if 1..1; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1; $pred_radek=$_'
    wamba avatar 5.1.2015 22:34 wamba | skóre: 37 | blog: wamba
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    no ono ho to netiskne jen pokud na prvním řádek (resp. dvou) je 0], jinak ho to tiskne, tak bych spíš doporučoval něco jako:
    perl  -ne 'BEGIN{$pred=-1}; /(\d+)\],/; print $pred_radek if $1!=$pred or $pred2!=$pred; $pred2=$pred; $pred=$1;$pred_radek=$_'
    #
    
    problém by ještě nastal kdyby "poslední" řádek nekončil \n, pak by se nevytiskl
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    Řešení 1× (JanM (tazatel))
    3.1.2015 11:30 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    jj, jde to snadno

    sed -re 'H;x;/([0-9]+)\].*\1\]/d'
    3.1.2015 15:39 MilanK
    Rozbalit Rozbalit vše Re: multiline sed? Najdi, porovnej a vymaž řádek
    Funguje to skvěle, akorát to zduplikuje řádek, když se posl. údaj neopakuje (zvýrazněno kurzívou). To bych v nejhorším odstranil přes "uniq":
                    [Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 38, 38, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 40, 40, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0],
                    [Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0],
                    [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0],
                    [Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0],
                    [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
                    [Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
    
                    [Date.UTC(2014, 11, 25, 10, 36, 36, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 42, 42, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 44, 44, 0), 0],
                    [Date.UTC(2014, 11, 25, 10, 50, 50, 0), 0],
                    [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 52, 52, 0), 1],
                    [Date.UTC(2014, 11, 25, 10, 54, 54, 0), 0],
                    [Date.UTC(2014, 11, 25, 15, 42, 42, 0), 0],
                    [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
                    [Date.UTC(2014, 11, 25, 15, 44, 44, 0), 1],
                    [Date.UTC(2014, 11, 25, 15, 46, 46, 0), 3],
    

    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.