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 02:00 | IT novinky

V Barceloně probíhá veletrh Mobile World Congress 2017. Nokia na něm například představila (360° video na YouTube) novou Nokii 3310 (YouTube). BlackBerry představilo BlackBerry KEYone (YouTube) s QWERTY klávesnicí. LG představilo LG G6 (YouTube). Huawei HUAWEI P10 a P10 Plus. Samsung představil tablet Galaxy Tab S3.

Ladislav Hagara | Komentářů: 0
včera 14:00 | Nová verze

Komunita kolem Linuxu From Scratch (LFS) vydala Linux Linux From Scratch 8.0 a Linux From Scratch 8.0 se systemd. Nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů přichází především s Glibc 2.25 a GCC 6.3.0. Současně bylo oznámeno vydání verze 8.0 knih Beyond Linux From Scratch (BLFS) a Beyond Linux From Scratch se systemd.

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

Byla vydána verze 0.10.0 webového prohlížeče qutebrowser (Wikipedie). Přehled novinek v příspěvku na blogu. Vývojáři qutebrowseru kladou důraz na ovladatelnost pomocí klávesnice a minimální GUI. Inspirovali se prohlížečem dwb a rozšířeními pro Firefox Vimperator a Pentadactyl. Prohlížeč qutebrowser je naprogramován v Pythonu a využívá PyQt5. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU GPL 3.

Ladislav Hagara | Komentářů: 10
25.2. 16:22 | Nová verze

Po pěti měsících od vydání Waylandu a Westonu 1.12.0 oznámil Bryce Harrington (Samsung) vydání Waylandu 1.13.0 a Westonu 2.0.0.

Ladislav Hagara | Komentářů: 1
24.2. 13:37 | Bezpečnostní upozornění

Společnost Cloudflare (Wikipedie) na svém blogu potvrdila bezpečnostní problém s její službou. V požadovaných odpovědích od reverzní proxy byla odesílána také data z neinicializované paměti. Útočník tak mohl získat cookies, autentizační tokeny, data posílaná přes HTTP POST a další citlivé informace. Jednalo se o chybu v parsování HTML. Zneužitelná byla od 22. září 2016 do 18. února 2017. Seznam webů, kterých se bezpečnostní problém potenciálně týká na GitHubu.

Ladislav Hagara | Komentářů: 1
24.2. 08:22 | Nová verze

Byla vydána první beta verze Ubuntu 17.04 s kódovým názvem Zesty Zapus. Ke stažení jsou obrazy Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu GNOME, Ubuntu Kylin, Ubuntu Studio a Xubuntu. Dle plánu by Ubuntu 17.04 mělo vyjít 13. dubna 2017.

Ladislav Hagara | Komentářů: 55
23.2. 17:53 | Bezpečnostní upozornění

Google na svém blogu věnovaném počítačové bezpečnost informuje o nalezení "reálného" způsobu generování kolizí hašovací funkce SHA-1. Podrobnosti a zdrojové kódy budou zveřejněny do 90 dnů. Již dnes lze ale na stránce SHAttered nalézt 2 pdf soubory, jejichž obsah se liší a SHA-1 otisk je stejný (infografika).

Ladislav Hagara | Komentářů: 40
23.2. 17:51 | Nová verze

Vyšla nová verzia open source software na správu a automatizáciu cloudových datacentier Danube Cloud 2.4. Danube Cloud je riešenie postavené na SmartOS, ZFS, KVM a zónach. Obsahuje vlastnosti ako integrovaný monitoring, DNS manažment, zálohy, a samozrejme rozsiahlu dokumentáciu.

dano | Komentářů: 12
23.2. 17:46 | Pozvánky

V Plzni se 3. až 5. března 2017 uskuteční AIMTEChackathon. Je to akce pro vývojáře, grafiky, webdesignéry i veřejnost. Akci provází zajímavé přednášky IT odborníků. Více o programu a možnosti přihlášení na stránkách akce.

cuba | Komentářů: 0
23.2. 01:00 | Nová verze

Známý šifrovaný komunikátor Signal od verze 3.30.0 již nevyžaduje Google Play Services. Autoři tak po letech vyslyšeli volání komunity, která dala vzniknout Google-free forku LibreSignal (dnes již neudržovaný). Oficiální binárky jsou stále distribuované pouze přes Google Play, ale lze použít neoficiální F-Droid repozitář fdroid.eutopia.cz s nezávislými buildy Signalu nebo oficiální binárku stáhnout z Google Play i bez Google účtu

… více »
xm | Komentářů: 8
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 721 hlasů
 Komentářů: 67, poslední dnes 01:12
    Rozcestník

    Dotaz: Jak pridat mezeru do retezce

    14.6.2006 23:05 Stefan
    Jak pridat mezeru do retezce
    Přečteno: 138×
    Zdravim, mam soubor s retezcema jak:
    P41PR
    SP62TZ
    P24LS
    P25NR
    P112HX
    P26HU
    SP36BU
    SP1V4JD
    
    a potrebuju je upravit aby ctvrty znak od konce byla mezera.
    P4 1PR
    SP6 2TZ
    P2 4LS
    P2 5NR
    P11 2HX
    P2 6HU
    SP3 6BU
    SP1V 4JD
    
    Muzete me nakopnout jak to udelat se sed-em? Predem diky.

    Odpovědi

    14.6.2006 23:14 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Já bych sed nebral:
    while read line; do
        echo ${line:0:${#line}-3} ${line:${#line}-3}
    done
    
    Kontrolu pro příliš krátké řetězce si už doplníte sám.
    Jakub Hájek avatar 14.6.2006 23:16 Jakub Hájek | skóre: 14 | blog: zamek | Praha
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    sed 's/\(^.*\)\(...$\)/\1 \2/' soubor_s_tema_kodama
    Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
    14.6.2006 23:19 szafa | skóre: 2 | London
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Dekuji, funguje to nadherne.
    15.6.2006 14:31 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Proč tak složitě?
    sed 's/\(...\)$/ \1/'
    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é.
    Jiří Poláček avatar 14.6.2006 23:17 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    sed -e 's/\(.*\)\(...\)$/\1 \2/' soubor
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    14.6.2006 23:39 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    one-liner v pythonu:
    file('soubor2', 'w').writelines(([a[:-4]+' '+a[-4:] for a in file('soubor')]))
    
    Fůůůůj :-(
    15.6.2006 07:23 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    A vida. Čekal jsem, kdy se ozvete. Koukám poslední dny, že máte tendenci cpát pythonovský kód do každé druhé věty. Nicméně si nemyslím, že je dobrý nápad použít k tak triviálnímu úkolu nástroj, který se na cílovém stroji nachází s menší pravděpodobností než stream editor. On se ten kód v Pythonu musí taky nějak spustit, že? Takže to pak bude dalších dvacet zbytečných znaků navíc.

    Kanónem na vrabce, toť motto dnešního světa...zdravý rozum a "use the right tool" dostává na frak...
    15.6.2006 09:34 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Jojo. A jestli vám to nebude vadit, budu to tak dělat i nadále. Já bych to tak nedramatizoval. Mám pro to své důvody, o kterých se můžeme nazdařbůh pohádat někde v blogu. Myslím, že je to ale zbytečné, protože výhody a nevýhody pythonu versus (bash + awk + sed + find + xargs + tr + test + bc + ...) jsou celkem evidentní. Buďte bez obav - nejsem blázen, abych si myslel, že python je vždy nejlepší.

    Příklady z abclinuxu si s oblibou (pro své vlastní potěšení) píšu v pythonu, abych se něco naučil. No a místo abych výsledek zahodil, tak ho raději pošlu sem.

    No a v tomto konkrétním případě jste určitě mohl vymyslet lepší důvody pro kritiku než počet znaků zdrojáku či "pravděpodobnost dostupnosti nástroje".
    15.6.2006 09:44 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    "No a v tomto konkrétním případě jste určitě mohl vymyslet lepší důvody pro kritiku než počet znaků zdrojáku či "pravděpodobnost dostupnosti nástroje"."

    Já bych to nebral tak úplně na lehkou váhu. :-D V době, kdy se rozmáhají "chytré krabičky", do kterých si lidé cpou speciální distribuce, je třeba mít se na pozoru, řekl bych. A na IRIXu a Solarisu mi to taky bude k ničemu, pokud se nerozhodnu stáhnout si extra binárky z nekochan.net nebo něčeho podobného pro Solaris. Na dvou třetinách strojů doma Python nemám, protože na nich potřeba nebyl, a kdybych potřeboval jenom přidat mezeru do sloupce, těžko bych ho kvůli tomu instaloval. Kdybych tam rozhcházel třeba CherryPy, samozřejmě bych těžko mohl jinak, ale kvůli mezeře do souboru? ;-)

    Pokud jde o "počet znaků", prostě mi uchází, proč to dělat složitě, když to jde jednoduše, nástrojem přesně k tomuto účelu zamýšleným. :-)
    15.6.2006 10:00 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    na python odpovedat jedine perlom :-))
    (suhlasim s tym, ze pouzitie sedu je v tomto pripade spravne)
    perl -ne 's/(?<=...)$/ /; print'
    
    15.6.2006 10:02 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    „perl -ne“

    Ano, tak s tím nelze nesouhlasit. Perl opravdu ne. :-D
    15.6.2006 10:46 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Když už v něčem mohutném, tak to už snad raději v céčku. :-)
    15.6.2006 14:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Špatně!
    perl -pe 's/(?=...$)/ /'
    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.6.2006 15:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    dik, tu zlu zatvorku som si neuvedomil :-(
    15.6.2006 12:18 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    "No a v tomto konkrétním případě jste určitě mohl vymyslet lepší důvody pro kritiku než počet znaků zdrojáku či "pravděpodobnost dostupnosti nástroje"."

    Já bych to nebral tak úplně na lehkou váhu. :-D V době, kdy se rozmáhají "chytré krabičky", do kterých si lidé cpou speciální distribuce, je třeba mít se na pozoru, řekl bych.
    Kdybyste navrhoval embedded zařízení, dáte tam raději _jeden_ nástroj (python - viz například mobil nokia S60)
    http://www.forum.nokia.com/python
    Nebo raději sed a spoustu dalších utilit, které se musí nějak sešroubovat, aby to fungovalo?
    A na IRIXu a Solarisu mi to taky bude k ničemu, pokud se nerozhodnu stáhnout si extra binárky z nekochan.net nebo něčeho podobného pro Solaris. Na dvou třetinách strojů doma Python nemám, protože na nich potřeba nebyl, a kdybych potřeboval jenom přidat mezeru do sloupce, těžko bych ho kvůli tomu instaloval.
    To, že jste se rozhodl nenainstalovat python je pouze vaše osobní věc. Nic to nevypovídá o obtížnosti instalace, dostupnosti nebo použitelnosti.
    Kdybych tam rozhcházel třeba CherryPy, samozřejmě bych těžko mohl jinak, ale kvůli mezeře do souboru? ;-)
    Viz výše,
    Pokud jde o "počet znaků", prostě mi uchází, proč to dělat složitě, když to jde jednoduše, nástrojem přesně k tomuto účelu zamýšleným. :-)
    Takže čím méně znaků, tím je to podle vás jednodušší? Pak nechápu, proč se tak distancujete od mocného Perlu :-)
    Na první pohled se může zdát, že specializovaný nástroj = rychlý nástroj. Ale sed pokulhává i tomto směru:
    $ time sed -e 's/\(...\)$/ \1/' soubor > /dev/null 
    
    real    0m38.281s
    user    0m37.978s
    sys     0m0.212s
    
    $ time ./pridej_mezeru.py > /dev/null 
    
    real    0m27.808s
    user    0m27.582s
    sys     0m0.128s
    
    Perl by pravděpodobně ve všem zvítězil, ale bohužel je tam nějaká chyba a já to nedákážu ani přečíst, natož opravit.
    15.6.2006 12:45 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    oops, to mam z toho, ze pisem regexpy bez testovania a hladny :-)
    perl -ne 's/(...)$/ $1/; print'
    
    ale nefandil by som mu, regexp bude pomalsi ako priame vypisovanie retazca, co by mohlo byt nasledovne
    perl -ne 'substr $_, -4, 0, " " if length  > 4; print'
    
    15.6.2006 13:00 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Jojo, ty (nepředkompilované) regulární výrazy ho dost zdržují:
    $ time perl -ne 's/(...)$/ $1/; print' soubor > /dev/null 
    
    real    1m4.121s
    user    1m0.340s
    sys     0m0.192s
    
    Ale ten druhý případ dává perlu jasné vítězství:
    $ time perl -ne 'substr $_, -4, 0, " " if length  > 4; print' soubor > /dev/null 
    
    real    0m14.447s
    user    0m13.433s
    sys     0m0.236s
    
    Proti perlu nemám s Pythonem šanci. Především proto, že čitelnost kódu nelze měřit ;-)
    15.6.2006 14:48 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Zase těch zbytečností okolo
    perl -pe 'substr$_,-4,0," "if length>3'
    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.6.2006 15:50 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Vida! Mohl bych, prosím pěkně, dostat zdrojový kód obou textů a ten soubor nebo jeho generátor, třeba zapakované? Mohl bych to vyzkoušet s jednou zajímavou knihovnou a přesvědčit se, jak je opravdu rychlá... Tedy jinak řečeno, přidat ještě jedno řešení. :-)

    "To, že jste se rozhodl nenainstalovat python je pouze vaše osobní věc. Nic to nevypovídá o obtížnosti instalace, dostupnosti nebo použitelnosti."

    Jde o to, že regulární výraz pro sed napíšu po zralé úvaze za půlminutu. Sehnání a instalace Pythonu se mi za půlminutu nepovede. :-D :-D

    Od Perlu se nedistancuju, to byl jen vtip. ;-) Nicméně přeci jen upřednostňuju méně terse řešení pro velké věci, ale pro takovou drobnost mi zápis sedu přijde jako "just right". Je to asi subjektivní, ale pokud vidím

    sed 's/\(...\)$/ \1/'

    a snažím se přijít na to, co dělá konkrétního (že sed zpracovává stream, je mi jasné, je to stream editor), mám 75 % textu věnovaného konkrétnímu problému. Kdežto tady

    file('soubor2', 'w').writelines(([a[:-4]+' '+a[-4:] for a in file('soubor')]))

    je ta nejpodstatnější část ([a[:-4]+' '+a[-4:]) ukrytá v cca. 16 % textu a nejprve se musím prolouskat tím, co ten obecný interpret má v tomhle konkrétním případě vlastně momentálně má za úkol. Jistě, je to ovlivněno psychologií, aktuálními znalostmi jednotlivých nástrojů a vůbec je to subjektivní, ale předpokládá, že v tomhle nebudu sám. :-)
    15.6.2006 16:01 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Vida! Mohl bych, prosím pěkně, dostat zdrojový kód obou textů a ten soubor nebo jeho generátor, třeba zapakované? Mohl bych to vyzkoušet s jednou zajímavou knihovnou a přesvědčit se, jak je opravdu rychlá... Tedy jinak řečeno, přidat ještě jedno řešení. :-)
    Jasně, s tím generátorem jsem moc na veřejnost jít nechtěl, ale tady je :-)
    file('soubor', 'w').writelines('pepazdepa\n' * 10000000)
    
    A testoval jsem to myslím tímhle:
    #!/usr/bin/env python
    import sys
    for line in file('soubor'):
        sys.stdout.write(line[:-4] + ' ' + line[-4:])
    
    Je to trochu pomalejší než ten one-liner, který jsem poslal předtím (ten prosím nepoužívat), ale zase to nesežere všechnu paměť ;-)

    Chápu to správně, že se můžeme těšit na ukázku ruby?
    15.6.2006 16:08 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Kdepak, něco o dva řády rychlejšího. :-D Jakmile se večer dostanu k stroji s nějakým unixem...
    15.6.2006 16:14 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    skor by som to odhadol na nejaky lisp (zeby emacs-lisp?) :-D
    15.6.2006 16:18 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    (Pšššt, neříkej jim o PPCRE... ;-))
    16.6.2006 15:48 Michal Karas | skóre: 45 | blog: /dev/random
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Taky bych byl zvědavý na nějakou efektivní ukázku ruby. Zkoušel jsem:
    ruby -ne 'print $_[0..-5]+" "+$_[-4..-1]' soubor
    a:
    #!/usr/bin/ruby
    
    f = File.new("soubor")
    f.each { |line| line.sub!(/(...)$/,' \1'); puts line}
    f.close
    ale obě varianty rychlostně hodně zaostavají za sedem, perlem i pythonem.
    15.6.2006 10:01 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Nenech se odradit a klidně uváděj i příklady řešení v pythonu! Těch pár příspěvků navíc tady vůbec nevadí, ba naopak. Že to pokaždý v pythonu nevychází "nejefektněji", to zde pozná každý. Ale o to přeci nejde, každý si může vybrat to "své" řešení, hlavně když je z čeho vybírat. Já třeba python (zatím) neovládám, ale vždycky se rád podívám, jak to v něm vypadá. A pokud s tím člověk začíná, tak právě takovéto jednoduché vyřešené úlohy jsou v začátcích výborným vodítkem. To je můj názor a předpokládám, že nejsem jediný. Jen víc takovýchto příkladů a návrhů řešení! Kdyby i jiní, co ovládají další jazyky (třeba Perl), přidávali také příklady, bylo by to ještě lepší!
    15.6.2006 14:49 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Dlouhe, neohrabané, hloupé. Nejde to použít jako filtr a je to neflexibilní.
    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.6.2006 14:57 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Jinak srovnání rychlostí mluví samo za sebe
    $ time perl -pe 'substr$_,-4,0," "if length>3' test.txt > /dev/null
    
    real    0m0.070s
    user    0m0.050s
    sys     0m0.000s
    $ time python pridej_mezeru.py 
    
    real    0m0.101s
    user    0m0.090s
    sys     0m0.010s
    $ time perl -pe 's/(?=...$)/ /' test.txt > /dev/null
    
    real    0m0.365s
    user    0m0.360s
    sys     0m0.000s
    $ time sed 's/\(...\)$/ \1/' test.txt > /dev/null
    
    real    0m0.522s
    user    0m0.500s
    sys     0m0.000s
    
    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.6.2006 15:07 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    Pro doplnění
    $ time sh pridej_mezeru.sh <test.txt >/dev/null
    
    real    0m4.153s
    user    0m3.020s
    sys     0m0.100s
    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é.
    14.6.2006 23:49 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Jak pridat mezeru do retezce
    naco tam trepete cely retazec? predsa staci hladat od konca
    sed -e 's/\(...\)$/ \1/'
    
    mimochodom, ako sa to ma chovat, ak na riadku su menej ako tri znaky ?

    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.