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 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 6
včera 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 22
23.3. 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 4
23.3. 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
23.3. 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
23.3. 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 29
23.3. 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
23.3. 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
23.3. 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
22.3. 23:55 | Nová verze

Opera 44, verze 44.0.2510.857, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 57. Z novinek vývojáři Opery zdůrazňují podporou Touch Baru na nejnovějších MacBoocích Pro (gif). Přehled novinek pro vývojáře na blogu Dev.Opera.

Ladislav Hagara | Komentářů: 1
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 927 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: Prohození řádků

    3.8.2009 20:01 he
    Prohození řádků
    Přečteno: 500×
    Prohození řádků. Potřebuji prohodit řádky, a to tak že první má být předposlední, druhý poslední, třetí -> čtvrtý od konce, čtvrtý -> třetí od konce, .., až předposlední -> první a poslední -> druhý. Studiem z tohoto odkazu http://sed.sourceforge.net/sed1line_cz.html jsem se dostal do stadia, že si dokážu pomoci pospojováním dvojic řádků (i s odmazáním počátečních mezer) a pak je jen přehodím příkazem tac, ale není to přesně ono: cat soubor | sed 's/^[ \t]*//' | sed '$!N;s/\n/ /' | tac. Nejsem v regulárních výrazech moc zběhlý a nevím, dá-li se to napsat jedním-dvěma příkazy. Budu vděčný za jakoukoli radu.

    Odpovědi

    3.8.2009 22:28 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    #!/usr/bin/perl

    use strict;
    use warnings;

    my @foo;
    my @bar;

    while(<>) {
    push @foo, $_;
    do { unshift @bar, @foo; @foo = (); } if @foo == 2;
    };

    print foreach @bar;

    3.8.2009 22:30 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    .. pokud jsem to teda pochopil spravne a melo to delat tohle:

    > seq 1 6 | ./hehe
    5
    6
    3
    4
    1
    2
     

    3.8.2009 23:21 he
    Rozbalit Rozbalit vše Re: Prohození řádků
    Ano, přesně toto. Ale jak to spustím? Ten skript jsem uložil jako hehe, ale když ho spustím jako cat soubor | ./hehe, tak mi to vyhodí bash: ./hehe: Permission denied. Nedám to ani přes sudo ani jako sudo cat soubor | seq 1 6 | ./hehe
    3.8.2009 23:34 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    hehe .. netreba ukladat jako hehe, ale proti gustu zadnej disputat .. hehe

    co se tyce permissions denied, tak to tipuju na opomenute `chmod +x hehe` .. hehe ;)

     

    .. aneb. musis tomu priradit executable flag :D .. muehehe

    3.8.2009 23:40 he
    Rozbalit Rozbalit vše Re: Prohození řádků
    Jede to! Mám se ještě co učit, a hlavně základy. Tady je vidět, že v Perlu je skryt obrovský potenciál. Díky
    3.8.2009 23:47 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    np, urw

    4.8.2009 23:16 salam
    Rozbalit Rozbalit vše Re: Prohození řádků
    hehe
    3.8.2009 23:37 FooBar
    Rozbalit Rozbalit vše Re: Prohození řádků

    seq 1 6 | sed 'N;s/\([^\n]*\)\n\(.*\)/\2\n\1/' | tac

    3.8.2009 23:45 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    shell brainfucks Vs perl brainpetting?

    nemam rad kod, u kteryho musim za tejde badat, *jak *jsem *to *k *certu *tenkrat *myslel ..

    4.8.2009 11:46 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Pokud umíte perl, nemusíte u něj po týdnu bádat "jak jsem to k čertu myslel", prostě si to přečtete. Pokud umíte sed, nemusíte u něj po týdnu bádat "jak jsem to k čertu myslel", prostě si to přečtete.

    Takže váš výlev říká jen prosté "buď mám krátkou paměť, nebo sed, nebo oboje, nebo 'nepíši do zdrojáků komentáře'". Ale se vším se dá něco dělat, pokud člověk chce, paměť se dá trénovat, sed se dá naučit a komentáře se dá naučit a zvyknout psát :)
    4.8.2009 17:15 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků
    muehehe .. nevim jake jsou Vase zkusenosti s programovanim, ale imho vetsina programatoru ma zpetne problem po urcite dobe *vratit se z5 do projektu, kterej napsali. alespon ja urcite, pac vetu ::

    ".. wtf, jak jsem to tenkrat myslel" si v duchu rikam pomerne casto .. ;)

    btw. *se *svym sedovskym nebo perlovskym RE brainfuckem mam temer chronicke problemy

    btw2. co se tyce tohodle konkretniho prikladu tak me by trvalo dat dohromady zadanou ulohu pomoci RE dele, nez nadatlit behem 30s (v zavislosti na rychlosti psani) z logickeho hlediska tuto elementarni ulohu v perlu ..
    4.8.2009 21:33 he
    Rozbalit Rozbalit vše Re: Prohození řádků
    Poněvadž jsem svým dotazem rozpoutal diskusi zastánců dvou rozdílných táborů, rozhodl jsem se, že provedu malý test. Vzal jsem reálný textový soubor o velikosti ~3 MB a ~54 tisíc řádků a prohnal jej pokaždé třikrát sedem a perlem. Výstupem byla konzole v GUI. Zde jsou výsledky:

    sed.time: 8.329s, 9.58s a 8.942s. avg.time=8.95033333s

    perl.time: 8.59s, 8.44s a 7.94s. avg.time=8.32333333s

    Porovnáním průměrných hodnot časů lze vypozorovat, že perl dává o 7% rychlejší odpověď.

    Spustil jsem tedy ještě jeden test, tentokrát syntetický, s výstupem do /dev/null. time seq 1 1000000 | sed 'N;s/\([^\n]*\)\n\(.*\)/\2\n\1/' | tac > /dev/null: 7.161s, 7.277s a 7.201s. avg.time=7.213s

    time seq 1 1000000 | ./hehe > /dev/null: 2.803s, 2.828s, 2.914s. avg.time=2.8483333333s

    Zde si vedl perl o 60% lépe a to už nelze přehlédnout.
    4.8.2009 23:26 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    No ono vždy záleží na tom, jak moc "blbě" se to napíše. Takže začneme optimalizovat?

    Mně zatím vychází lépe sed, předpokládám že to je tím, že ho umím lépe než perl, který jsem se tedy optimalizovat nesnažil ;)
    bash$ time seq 1 1000000 | ./hehe > /dev/null
    
    real    0m1.189s
    user    0m1.764s
    sys     0m0.056s
    
    bash$ time seq 1 1000000 | sed -n 'h;n;p;g;p' | tac > /dev/null
    
    real    0m0.862s
    user    0m0.964s
    sys     0m0.048s
    
    
    4.8.2009 23:29 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Co do počtu znaků vede sed samozřejmě také, ale to asi už zůstane.
    bash$ wc -c hehe
    166 hehe
    
    bash$ wc -c <<<"sed -n 'h;n;p;g;p' | tac"
    25
    
    5.8.2009 00:01 FooBar
    Rozbalit Rozbalit vše Re: Prohození řádků

    Sakra, hodit to do hold bufferu mne nejak vubec nenapadlo, dobry a elegantni!:-)

    5.8.2009 08:15 Petr
    Rozbalit Rozbalit vše Re: Prohození řádků

    Dobrý řešení, tady je ještě o 2 znaky kratší (a možná i rychlejší, ale neměřil jsem to), s vypuštěním mezer okolo svislítka dokonce o 4 znaky :)

    $ wc -c <<<"sed -n 'h;n;G;p'|tac"
    21
    $

    5.8.2009 15:15 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Ještě o znak sed 'x;n;$G' | tac pokud bych se povznesl nad prázdné řádky na konci :)
    5.8.2009 15:16 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Vlastně to bylo o 4 znaky díky absenci -n
    5.8.2009 15:53 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Jen škoda že je to pořád o jeden znak delší než perl ;)

    sed 'x;n;$G'|tac 
    #!/usr/bin/perl
    4.8.2009 22:56 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Stále zůstáváme u toho, že umíte lépe perl než sed. Já umím lépe sed, takže bych tuto elementární úlohl napsal v sedu, vy umíte lépe perl, tak byste tuto elementární úlohu nadatlil v perlu. Pokud by nám záleželo na výkonu, tak bychom to oba nadatlili v tom, co by bylo výkonnější.

    Vracet se k staršímu projektu je vždycky trochu náročné a programátor, který se má rád, asi programuje tak, aby to po sobě i po delší době přečetl, a nesnaží se o nějakou optimalizaci algoritmů hraničící s kryptografií (vyjma kritických míst samozřejmě, tam pak nastupují dekryptovací komentáře :D)
    4.8.2009 23:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    No ono vždy záleží na tom, jak moc "blbě" se to napíše. Takže začneme optimalizovat?

    Mně zatím vychází lépe sed, předpokládám že to je tím, že ho umím lépe než perl, který jsem se tedy optimalizovat nesnažil ;)
    bash$ time seq 1 1000000 | ./hehe > /dev/null
    
    real    0m1.189s
    user    0m1.764s
    sys     0m0.056s
    
    bash$ time seq 1 1000000 | sed -n 'h;n;p;g;p' | tac > /dev/null
    
    real    0m0.862s
    user    0m0.964s
    sys     0m0.048s
    5.8.2009 00:53 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    ad.1) vase reseni aka  'h;n;p;g;p' je moc hezke .. neznal jsem.

     

    ad.2) obe reseni maji presto jednu nevyhodu .. na skutecnem unixovem systemu se v lepsim pripade chovaji jinak nez na Linuxu (rozumej nepredvidatelne) .. v horsim nefungujou vubec :D .. ps. je to 1:1 (neprevidatelne:nefungujou .. a to neni dobra bilance ..)

    testovano na:

    SunOS t5240-s10u7 5.10 Generic_139555-08 sun4v sparc SUNW,T5240

    FreeBSD 7.2-RELEASE

     

    5.8.2009 01:03 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Souhlasím s tím, že používat jiný sed než GNU sed je nesmyslné sebemrskačství :D asi jako snažit se skriptovat na HP-UX. Na kvalitní práci je potřeba kvalitní nástroj (perl, GNU sed, C...).
    5.8.2009 01:06 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Aby nebylo špatně pochopeno, i GNU sed může být posix compliant (--posix), ale musí to být GNU sed, ne nějaký nedodělek na UNIXu.
    5.8.2009 00:26 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    mistre :D .. ok, pokud chceme *nekde *zustavat tak si ujasneme pojmy ::

    a) neskromne si myslim, ze sed umim stejne jako perl a ne-li lepe .. sed == REs a ty jsou vsude stejne

     

    b) to co vy zovete sed je v pravem slova smyslu GNU-sed .. me hlavni zamereni se netyka paznechtu jmenem GNU ale POSIX compliant systemu (jako napr unixove systemy, neplest s Linuxem ktery je unix-like) .. vas kod bohuzel nefunguje jinde nez na Linuxu (osobne jsem zkousel bsd a solaris) .. mozna proto pristupuju k sedu a obecne ke GNU optimalizacim pomerne podezrivave a skepticky ..

     

    c) tato uloha nema podle me co docineni s REs. to, ze to lze pomoci REs resit *take snad jeste neznamena, ze se tady budeme hadat a osocovat co kdo umi lepe a co je ciste .. to dle meho skromneho nazoru GNU-sed rozhodne neni.

    cela tato diskuse zacala moji nevinnou poznamkou o brainfucku pomoci REs .. nemyslel jsem tim, ze vas brainfuck je spatne napsanej, pomalej nebo nedejboze *necistej. myslel jsem tim, ze v tomto pripade jste sice zvolil funkcni, nicmene brute-force metodu .. aneb jak by se to chovalo, kdyby to melo parsovat radky s nestandartni delkou

     

    toto je primitivni operace ktera se sklada z jednoduche direktivy :: "kazde dva radky co jdou za sebou vem a umisti je *pred dvojku radku co byla predchozi .." .. jakekoliv dalsi laborovani a nebo manipulovani je *pointless ;)

     

    nemyslim to nijak konfrontacne, ale pobavil jste me vasi neskryvanou znalosti GNU-sedu a zejmena receptem pro vsechny programatory, jak se stale udrzet v projektu .. obavam se, ze vase metoda mozna pomaha v jednodussich shellovych skriptech, nikoliv vsak v pripadech, kdy se brainfuck neskryva v necem tak mrzkem jako jednotlivy RE/algoritmus, ale v komplexnosti a provazani pouzitych metod :D

     

    zdravim

    5.8.2009 00:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Moc nechápu smysl příspěvku a proto jen upřesním že vámi zmiňovaný kód v sedu s RE jsem nepsal já, já napsal optimalizovaný kód sed -n 'h;n;p;g;p' | tac, myslím že je POSIX compliant.

    Můžete si povšimnout, že tam není žádná RE, on sed je více než jen RE, je to hlavně o streamovém editování, ale nechci zacházet do hloubky, abyste to třeba zase nebral mylně jako nějaké poučování podobně, jako jste mylně interpretoval mou prostou úvahu o programátorech :D
    5.8.2009 00:56 nettezzaumana
    Rozbalit Rozbalit vše Re: Prohození řádků

    viz. prispevky vyse ..

     

    prvni prispevek jsem dopsal az pote co jsem si *vsiml, jak jste optimalizoval .. a to se mi libi, hezky jste to udelal

    thx, good to know it

    5.8.2009 19:12 FooBar
    Rozbalit Rozbalit vše Re: Prohození řádků

    Ja se omlouvam, ale co si mam predstavit (rikejte mi vojin Kefalin) pod takym pojmom "radky s nestandartni delkou"?:)

    5.8.2009 21:41 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    Kolega se zaměřuje i na ne-gnu nástroje běžící na všelijakých platformách jako Sun, BSD, takže tam mohou přijít v potaz různá omezení, jako třeba 4OKB max. délka řádky u sedu, 3000 znaků u awk a podobně, popřípadě to můžete chtít použít na nějaké mašině běžící ještě od 70. let bez aktualizace... ;) ;) ;)
    5.8.2009 22:08 FooBar
    Rozbalit Rozbalit vše Re: Prohození řádků

    Ah, uz chapu co chce rict... ackoliv bych se mozna v tom pripade branil formulaci "standarDni delka radku" :)

    4.8.2009 12:11 FooBar
    Rozbalit Rozbalit vše Re: Prohození řádků

    Troufl bych si rict, ze to je tim, ze umis dobre perl a neumis dobre sed:) Moje situace je presne obracena, Perlem nevladnu a na tvuj kod jsem se musel soustredit,... rekl bych, ze neni zadny X vs Y, je to vec zcela subjektivnich preferenci

    4.8.2009 11:42 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Prohození řádků
    +1, sed rulez, jednoduché, čitelné, přímočaré, žádné velké programování ;)

    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.