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 05:55 | IT novinky

    Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.

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

    Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.

    Ladislav Hagara | Komentářů: 17
    včera 05:44 | Komunita

    Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Komunita

    Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co

    … více »
    SUSEMAS | Komentářů: 1
    včera 04:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Zajímavý článek

    Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.

    Ladislav Hagara | Komentářů: 10
    3.11. 22:55 | IT novinky

    Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno

    … více »
    Ladislav Hagara | Komentářů: 8
    3.11. 16:22 | Pozvánky

    Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.

    TomasVondra | Komentářů: 0
    3.11. 13:22 | Nová verze

    Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.

    Ladislav Hagara | Komentářů: 4
    3.11. 10:44 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (18%)
     (18%)
     (22%)
     (15%)
     (21%)
     (16%)
     (16%)
    Celkem 311 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Dotaz: sed -- vytvoření mezer v čísle po 3 cifrách

    Jan Zahornadsky avatar 15.8.2005 22:09 Jan Zahornadsky | skóre: 22 | blog: hans_blog
    sed -- vytvoření mezer v čísle po 3 cifrách
    Přečteno: 88×
    Ahoj,

    jak by se dalo sedem vytvořit například z čísla 1234567890 text 1 234 567 890? Zkoušel jsem to jen primitivním
    sed 's/\([0-9][0-9][0-9]\)$/ \1/g'
    
    ale to mi udělá pouze do tisíců.. Nelze nějak nastavit, aby se příkaz (například 's/\([0-9][0-9][0-9] \)$/ \1/g') opakoval, dokud neudělá už žádnou další změnu? Se sedem pracuji asi celé dvě hodiny, takže se moc nevyznám... Za každé nakupnutí moc díky!
    Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.

    Odpovědi

    15.8.2005 22:15 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    echo 1234567890 \
      | rev \
      | sed -re 's/([0-9]{3})/\1 /g' -e 's/ $//' \
      | rev
    
    :-) Ale určitě to jde nějak inteligentněji…
    15.8.2005 22:44 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Tak jsem vymyslel ještě šílenější:
      a=1234567890
      while true; do
        b=`echo "$a" | sed -re 's/([0-9])([0-9]{3})\>/\1 \2/'`
        if [ "$b" = "$a" ]; then break; fi
        a="$b"
      done
      echo "$a"
    
    :-)
    15.8.2005 23:15 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Což mě inspirovalo k čistě sedovému řešení
    sed -re ':1; s/([0-9])([0-9]{3})\>/\1 \2/; t1'
    
    15.8.2005 23:21 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Sakra, takovéhle věci jsem taky kdysi uměl, teď si ani nevzpomenu, že existují… :-(
    16.8.2005 10:44 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Moc pěkné a elegantní :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.8.2005 11:35 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Trochu brutální řešení v perlu jediným, ale poněkud speciálním regexpem, který se na každý řádek aplikuje jen jednou (one)
    perl -pe 's/(?<=\d)(?=(\d{3})+\D)/ /g;'
    Pro srovnání ekvivalent toho sedového řešení, tedy aplikace regexpu na jedn řádek dokud se něco matchne, ale s využitím look-ahead/behid (many)
    perl -pe 'while(s/(?<=\d)(?=\d{3}\D)/ /){}'
    a nakonec úplný ekvivalent toho sedu (normal)
    perl -pe 'while(s/(\d)(\d{3}\D)/$1 $2/){}'
    A srovnání rychlosti
               Rate    one   many normal
    one     69367/s     --   -10%   -47%
    many    77244/s    11%     --   -40%
    normal 129705/s    87%    68%     --
    
    Což mě teda přinejmenším hodně překvapilo, že to úplně obyčejné řešení je zároveň nejrychlejší.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.8.2005 13:16 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Bylo by možné (na stejném systému) změřit ještě ta dvě sedová řešení (sed+rev a sed s cyklem)?
    16.8.2005 17:01 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Bohužel. Příslušná měření jsem dělal přes Benchmark modul v perlu nad třemi řetězci načtenými z DATA. Musel bych nějak vymyslet jak omezit vliv natahování sed a rev do paměti a nad tím se mi teď nechce přemýšlet. Jinak zdroják testu:
    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    use Benchmark qw(cmpthese);
    
    my @strs = <DATA>;
    
    cmpthese(-2, {
    		one => sub {
    			foreach (@strs) {
    				s/(?<=\d)(?=(\d{3})+\D)/ /go;
    			}
    		},
    		many => sub {
    			foreach (@strs) {
    				while (s/(?<=\d)(?=\d{3}\D)/ /o){}
    			}
    		},
    		normal => sub {
    			foreach (@strs) {
    				while (s/(\d)(\d{3}\D)/$1 $2/o){}
    			}
    		}
    	});
    
    __DATA__
    1234567890
    hwiehwfuih
    1246537245735
    __END__
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.8.2005 17:56 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Aha, mne by právě spíš zajímalo porovnání toho, když to v shellovém skriptu budu provádět jednotlivými způsoby (perl1-3, sed s cyklem, sed+rev). Ale to si koneckonců zvládnu změřit sám.
    17.8.2005 09:26 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Tak ve scriptu bych si typnul, že vě většině zátěží by asi měl vyhrát ten sed s cyklem. Má pro to všechny předpoklady.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    15.8.2005 23:15 petr_p
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Ne, inteligentneji to nelze. Tedy pokud vas konecny automat nepodporuje right2left text (tj. RE aplikuje od konce textu).
    15.8.2005 23:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- vytvoření mezer v čísle po 3 cifrách
    Abych pravdu řekl, za inteligentnější (a hlavně čistší) řešení bych považoval napsat si nadstavbu nad strfmon(), něco jako je printf(1) vůči printf(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.