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:55 | Pozvánky

    Organizátoři konference LinuxDays ukončili veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata, která na letošní konferenci zaznějí. Hlasovat můžete do neděle 7. září. Poté podle výsledků hlasování organizátoři sestaví program pro letošní ročník. Konference proběhne 4. a 5. října v Praze.

    Petr Krčmář | Komentářů: 8
    dnes 02:22 | Nová verze

    Byla vydána verze 11.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 06:00 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. Vypíchnout lze, že v Plasmě byl implementován 22letý požadavek. Historie schránky nově umožňuje ohvězdičkovat vybrané položky a mít k ním trvalý a snadný přístup.

    Ladislav Hagara | Komentářů: 0
    30.8. 20:00 | Nová verze

    Wayfire, kompozitní správce oken běžící nad Waylandem a využívající wlroots, byl vydán ve verzi 0.10.0. Zdrojové kódy jsou k dispozici na GitHubu. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    30.8. 04:00 | Komunita

    Před necelými čtyřmi měsíci byl Steven Deobald jmenován novým výkonným ředitelem GNOME Foundation. Včera skončil, protože "nebyl pro tuto roli v tento čas ten pravý".

    Ladislav Hagara | Komentářů: 7
    29.8. 18:33 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 156 (pdf).

    Ladislav Hagara | Komentářů: 1
    29.8. 15:11 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.8.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    29.8. 12:11 | IT novinky

    Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.

    Ladislav Hagara | Komentářů: 0
    28.8. 23:33 | Nová verze

    Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    28.8. 21:55 | Nová verze Ladislav Hagara | Komentářů: 4
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 125 hlasů
     Komentářů: 9, poslední 28.8. 11:53
    Rozcestník

    Dotaz: když jsou čísla na obtíž

    14.3.2011 20:57 jaromir.kopravy
    když jsou čísla na obtíž
    Přečteno: 270×
    Dobrý den, potřebuji zpracovat rozsáhlou databázi číselných hodnot a textových řetězců. Proto bych to nějak rád zautomatizoval, například sedem.

    Jak mohu nahradit všechna racionální čísla (desetinná část je za tečkou) v databázi (resp. textovém souboru) za, například, znak "x")?

    vstup: 555.32 nejaky text 2616486 nejaky text -868451 nejaky text

    vystup: x nejaky text x nejaky text x nejaky text

    A ještě jeden dotaz, v databázi jsou souřadnice bodů (bohužel ne vždy jako číslice, ale jako libolná změť čehokoliv), jako příklad A[0,1] B[3,x] C[nezname_souradnice]. Šlo by nějakou posloupností klasických bash nástrojů dojít k tomuto (oznaceni zacatku a konce napriklad retezci "souradnice" a "konec")?

    vystup: A[0,1] nejaky text B[3,x] nejaky text C[nezname_souradnice]

    vstup: souradnice[0,1]konec nejaky text souradnice[3,x]konec nejaky text souradnice[nezname_souradnice]konec

    Děkuji za všechny nápady a návrhy, jak dojít ke kýženému výsledku.

    Odpovědi

    14.3.2011 22:07 ____ | skóre: 15 | blog: _
    Rozbalit Rozbalit vše Re: když jsou čísla na obtíž

    Jen přispěju nějakými těmi regexy pro sed.

    1. sed s/-\{,1\}[0-9]\{1,\}\.\{,1\}[0-9]*/x/g
    2. sed s/[A-Z]\(\[[^\]]\]\)/souradnice\1konec/g

    Neověřoval jsem správnost. Raději bych to vůbec ještě přepsal v AWK nebo Perl, protože je ještě nutné něco doplnit, aby se nanahrazovala čísla obsažená v textové části, pokud tam vůbec nějaká jsou, ale nechce se mi brouzdat po dokumentaci.

    14.3.2011 22:26 NN
    Rozbalit Rozbalit vše Re: když jsou čísla na obtíž
    Ten prvni:
    sed 's/[+-]\?[0-9]\{1,7\}[.]\?[0-9]\{1,3\}\?/x/g'
    Vsechny vyskyty retezcu /g ktere muzou zacinat + nebo - nasleduje 1 az 7 cifer dale muze byt tecka a muze nasledovat dalsich 1 az 3 cifer.

    Ten druhy:
    sed 's/[A-Z]\[/souradnice\[/g'
    sed 's/\]/\]konec/g'
    Vsechny vyskyty retezcu, ktere zacinaji velkym pismenem a otevyraci hranatou zavorkou nahrad retezcem souradnice a otevyraci zavorkou.

    Vsechny vyskyty retezce, ktery obsahuje hranatou uzavyraci zavorkou nahrad uzavyraci hranatou zavorkou a retezcem lkonce.

    Asi by se oboji dalo vylepsit, ale oboji funguje.. NN

    14.3.2011 23:08 jaromir.kopravy
    Rozbalit Rozbalit vše Re: když jsou čísla na obtíž
    Děkuji za odpovědi, regulární výrazy řeší můj problém, až na jednu věc --- velká a malá písmena (akceptuje i ta malá při [A-Z]):

    ----------------------------------------------------------------------------------------

    test: echo "A[1,2] B[3,x] C[souradnice]" | sed 's/[A-Z]\[/souradnice\[/g';

    výstup: souradnice[1,2] souradnice[3,x] souradnice[souradnice]

    ----------------------------------------------------------------------------------------

    test: echo "A[1,2] b[3,x] C[souradnice]" | sed 's/[A-Z]\[/souradnice\[/g';

    výstup: souradnice[1,2] souradnice[3,x] souradnice[souradnice]

    ----------------------------------------------------------------------------------------

    Zkoušel jsem vícero způsobů kombinace malých a velkých písmen a bash mi nedokáže rozeznat malá a velká písmena. Můžete mi, prosím, poradit, kde je problém???
    14.3.2011 23:36 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: když jsou čísla na obtíž
    Problém může vzniknout pokud vaše locales (příkaz locale) mají LC_COLLATE takové, že řazení velkých/malých písmen je (nepříklad) aAbBcC, potom A-Z zahrnuje velká i malá písmena (krom malého a).

    Demo:
    
    bash$ locale | grep LC_COLLATE
    LC_COLLATE="cs_CZ.UTF-8"
    
    bash$ echo "a[1,2] b[3,x] C[souradnice]" | sed 's/[A-Z]\[/souradnice\[/g';
    a[1,2] souradnice[3,x] souradnice[souradnice]
    
    bash$ echo "A[1,2] Z[3,x] C[souradnice]" | sed 's/[A-z]\[/souradnice\[/g';
    souradnice[1,2] Z[3,x] souradnice[souradnice]
    
    Řešení odolné proti různým řazením:
    echo "A[1,2] b[3,x] C[souradnice]" | sed 's/[[:upper:]]\[/souradnice\[/g';

    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.