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 15:18 | Zajímavý software

CrossOver, komerční produkt založený na Wine, je dnes (23. 5. 2017) dostupný ve slevě. Roční předplatné linuxové verze vyjde s kódem TWENTYONE na $21, resp. $1 v případě IP z chudších zemí jako ČR. Firma CodeWeavers, která CrossOver vyvíjí, významně přispívá do Wine. Přidaná hodnota CrossOver spočívá v přívětivějším uživatelském rozhraní, integraci do desktopu a podpoře.

Fluttershy, yay! | Komentářů: 10
dnes 15:11 | Zajímavý projekt

V únoru loňského roku bylo představeno několik útoků na celou řadu bezdrátových klávesnic a myší s názvem MouseJack. Po více než roce lze chybu opravit, tj. aktualizovat firmware, také z Linuxu. Richardu Hughesovi se podařilo navázat spolupráci se společností Logitech, získat od nich dokumentaci, přesvědčit je, aby firmware poskytovali přímo a ne jako součást .exe souboru, aby mohl být popis začleněn do služby Linux Vendor Firmware Service (LVFS) a aktualizace tak mohla proběhnou přímo z Linuxu pomocí projektu fwupd.

Ladislav Hagara | Komentářů: 0
dnes 13:22 | Nová verze

Po roce a půl vydali vývojáři projektu SANE (Scanner Access Now Easy) (Wikipedie) novou verzi 1.0.27 balíku SANE-Backends. Nejnovější verze tohoto balíku pro přístup ke skenerům přináší například významná vylepšení v několika backendech nebo podporu pro více než 30 nových modelů skenerů. Verze 1.0.26 byla přeskočena.

Ladislav Hagara | Komentářů: 0
včera 20:55 | Komunita

Od 18. do 21. května proběhla v Saint-Étienne Linux Audio Conference 2017. Na programu byla řada zajímavých přednášek a seminářů. Videozáznamy přednášek lze zhlédnout na YouTube. K dispozici jsou také články a prezentace.

Ladislav Hagara | Komentářů: 0
včera 20:44 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, překonala hranici 2 200 dolarů. Za posledních 30 dnů tak vzrostla přibližně o 80 % [reddit].

Ladislav Hagara | Komentářů: 4
včera 17:33 | Nová verze

Po 5 měsících vývoje od vydání verze 0.12.0 byla vydána verze 0.13.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 83 vývojářů. Přibylo 840 nových balíčků. Jejich aktuální počet je 5 454. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 17:22 | Nová verze

Po 5 měsících vývoje a 3 týdnech intenzivního testování byla vydána verze 12 open source systému Nextcloud, forku ownCloudu, umožňujícího provoz vlastního cloudového úložiště. Přehled novinek i s videoukázkami v poznámkách k vydání. Pro vyzkoušení je k dispozici demo.

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

Týden po prvním číslu publikoval Michal Špaček na svých stránkách druhé číslo newsletteru věnovanému bezpečnosti, bezpečnému vývoji převážně webových aplikací a bezpečnosti uživatelů. Věnuje se výpadku Let's Encrypt, únikům dat, bug bounty pro WordPress nebo SQL Injection v Joomla. Zmiňuje také, že Mozilla plánuje z Firefoxu odstranit podporu pro Encrypted Media Extensions (EME) na nešifrovaném HTTP a nadále pro EME vyžadovat HTTPS.

Ladislav Hagara | Komentářů: 0
včera 02:00 | Pozvánky

Ve středu 31. května 2017 od 17:00 proběhne v pražské pobočce SUSE Den otevřených dveří v SUSE. Čekají vás přednášky o live kernel patchingu a nástroji SaltStack. Také se dozvíte zajímavé informace o SUSE, openSUSE, a vlastně všech produktech, na kterých lidé ze SUSE pracují.

Ladislav Hagara | Komentářů: 4
včera 01:00 | Pozvánky

Czech JBoss User Group srdečně zve na setkání JBUG v Brně, které se koná ve středu 7. června 2017 v prostorách Fakulty informatiky Masarykovy univerzity v místnosti A318 od 18:00. Přednáší Tomáš Livora na téma Fault Tolerance with Hystrix. Více informací na Facebooku a Twitteru #jbugcz.

mjedlick | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (32%)
 (1%)
 (8%)
 (44%)
 (9%)
Celkem 597 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: Bash: promenna="[A-E]" na promenna="ABCDE"

    19.3.2008 17:57 jakubchm
    Bash: promenna="[A-E]" na promenna="ABCDE"
    Přečteno: 654×
    Zdravim, potreboval bych zmenit format promenne z:

    promenna="[A-E]"

    na:

    promenna="ABCDE"

    Odpovědi

    19.3.2008 18:14 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash
    Asi jsem úplně natvrdlej :-(, protože mi není jasné, na co se ptáte, když jste si sám odpověděl.
    19.3.2008 18:17 jakubchm
    Rozbalit Rozbalit vše Re: bash
    jo, v tomhle pripade je to jasne, ale ja predem nevim jaky bude ten rozsah jestli A-E nebo treba D-F... a potreboval bych jakykoli vyraz ve formatu *-* prepsat do *****
    19.3.2008 21:41 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Sice chapem zadanie, ale pripada mi to tak obskurny problem, ze si myslim, ze je to iba podproblem niecoho vacsieho, co by mozno slo vyriesit aj bez tohoto expandovania [A-E]. Ak napises viac informacii o nadprobleme, tak sa mozno najde ine riesenie a toho expandovanie vobec nebude treba riesit.
    If you hold a Unix shell up to your ear, you can you hear the C.
    20.3.2008 09:34 ,/.
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Ale no tak, vzdyt staci zhruba 20 radek v C a mas Semo program, ktery to udela. Napriklad tady jsem jeden napsal:
    #include < stdio.h >
    #include < stdlib.h >
    
    int main(int argc, char *argv[]) {
    	unsigned short i;
    
    	if (3 != argc) {
    		puts("Usage: < programname > a z\nprints the characters a..z");
    		return EXIT_FAILURE;
    	}
    
    	if (argv[1][0] > argv[2][0]) {
    		for (i = argv[1][0]; i >= argv[2][0]; i--)
    			putc(i, stdout);
    	} else {
    		for (i = argv[1][0]; i <= argv[2][0]; i++)
    			putc(i, stdout);
    	}
    	
    	return EXIT_SUCCESS;
    }
    
    PS: abclinuxu a demence "Značka STDIO.H není povolena!", "Značka STDLIB.H není povolena!", to je takovy problem funkcni tag CODE? Za < jsem umistil mezery a pred > take, aby to slo vubec odeslat a musel pouzit PRE, abych neprisel o odradkovani.
    20.3.2008 09:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Ad demence: pletete si tag <code> a tag <xmp> :) Jinak souhlasím že vkládání kódu kde jsou znaky <> je na abclinuxu obtížné, možná si ale zkuste povšimnouti v řádku tlačítek nad textarea kam vkládáte text, jsou tam tlačítka [<code>][<][>][<Citace>], ovzvlášť ta mezi code a Citace by vás mohla zajímat.
    20.3.2008 10:42 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    PS: abclinuxu a demence "Značka STDIO.H není povolena!", "Značka STDLIB.H není povolena!", to je takovy problem funkcni tag CODE? Za < jsem umistil mezery a pred > take, aby to slo vubec odeslat a musel pouzit PRE, abych neprisel o odradkovani.
    Značku <code> Abíčko umí. Ale komentáře se zadávají v HTML, a v HTML nemůžete znaky < zadávat jen tak, jak vás napadne. Nejjednodušší je vždy je nahradit &lt; resp. &gt;. Což je všechno popsané v textu Nápověda k formátování, který máte pod každým boxem pro zadání komentáře…
    20.3.2008 13:52 ,/.
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Dekuji za vyjasneni,

    ja ECMAScript/JScript nepouzivam a proto mi jsou na nem zavisle casti portalu nedostupne. Ocekaval jsem automatickou substituci funkcnich znaku meho komentare za odpovidajici (X)HTML entity i substituci znaku 0x0a za (X)HTML break (BR). V XHTML entity lower than (lt) a greater than (gt) neexistuji, proto je ani v HTML neuzivam. Myslim ze priste pouziji &#60; a &#62;, to manualni escapovani uz je pekne otravne,

    <joke>dalsi problem zde uz muze byt snad pouze EBCD misto ASCII a chybejici konvertor dat z uzivatelskeho vstupu...</joke>.
    20.3.2008 15:37 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Automatická substituce je omezená, z důvodu zachování možnost používat (x)html entity.

    Jen pro upřesnění, v XHTML minimálně do XHTML 1.0 Strict entity &gt a &lt samozřejmě existují.
    20.3.2008 15:39 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Er, Automatická substituce je omezená, z důvodu zachování možnost používat (x)html tagy samozřejmě.
    20.3.2008 16:49 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    V XHTML entity lower than (lt) a greater than (gt) neexistuji…

    XML 1.1: Character and Entity References:

    … well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quo.
    20.3.2008 17:33 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    ja ECMAScript/JScript nepouzivam a proto mi jsou na nem zavisle casti portalu nedostupne.
    Je to něco za něco. Když máte zakázán (nebo váš prohlížeč neumí) JavaScript, je samozřejmé, že nemůžete mít takové pohodlí. Je to vaše rozhodnutí.
    V XHTML entity lower than (lt) a greater than (gt) neexistuji, proto je ani v HTML neuzivam.
    Ty entity (spolu s &amp;) existují přímo v XML, jinak by nebylo možné tyhle znaky vůbec v XML zapsat.
    Ocekaval jsem automatickou substituci funkcnich znaku meho komentare za odpovidajici (X)HTML entity
    Asi všichni, kdo se nějakým způsobe podíleli na psaní kódu portálu, nemají rádi, když jim počítač něco automaticky mění pod rukama. Určitě by to šlo udělat na nějaký přepínač (napíšu si všechno sám v XHTML × dávám ti nějaký text a vyrob z toho, co umíš) – ale někdo takovou funkci musí napsat…
    21.3.2008 09:44 nebo vaše jméno
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Proc se tedy znaky < a > automaticky escapuji, kdyz je pred nimi napsana mezera?
    21.3.2008 12:21 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Neescapují se, to je vlastnost HTML (komentáře se neinterpretují jako XHTML, ale jako HTML) – v XML by tohle nefungovalo. Když se podíváte do zdrojového kódu stránky, ty znaky tam najdete neescapované. V HTML je to tak, že když intrepret narazí na < v takové pozici, že to nemůže být začátek tagu, zobrazí ho jako normální znak menšítko. Takže pokud je např. za tím znakem mezera, nemůže to být tag a zobrazí se menšítko. U většítka to bude podobné – pokud narazí na znak >, ale nemá zrovna „rozečtenou“ nějakou značku (tj. načetl < a zatím nebylo ukončeno žádným >), bere to jako znak většítko.
    Hanička avatar 20.3.2008 09:42 Hanička | skóre: 3 | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    string roztahni(string co)
    {
    	int l = co.length();
    	bool in = false;
    	string out = "";
    	char prev;
    	for (int i = 0; i < l; i++)
    	{
    		if (in)
    		{
    			if (co[i] == ']') in = false;
    			else if (co[i] == '-')
    			{
    				if (prev < co[i+1]) for (char s = prev+1; s <= co[i+1]; s++) out += s;
    				prev = co[i+1];
    				i++;
    			}
    			else out += prev = co[i];
    		}
    		else
    		{
    			if (co[i] == '[') in = true;
    			else out += co[i];
    		}
    	}
    	return out;
    }
    a pak tuhle funkci zavoláš třeba takto... roztahni("[1-9a-z]")
    20.3.2008 10:28 depka
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    toto pri prvnim prubehu prida do navratoveho stringu neinicializovanou promenou prev :)
    20.3.2008 10:31 depka
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    pardon, kecam nepodival jsem se na cely radek :/
    20.3.2008 10:44 ,/.
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Mam lepsi reseni.
    #include < stdio.h >
    #include < string.h >
    #include < stdlib.h >
    
    int main(int argc, char *argv[]) {
            size_t s_str, i = 0;
    	char c;
    
    	if (2 != argc) {
    		printf("Usage: %s [a-z0-9z-a]\nprints the characters a-z0-9z-a", argv[0]);
    		return EXIT_FAILURE;
    	}
    
            s_str = strlen(argv[1]);
    	for (i = 0; i < s_str; i++) {
    		if (argv[1][i] == '-') {
    			if (argv[1][i - 1] > argv[1][i + 1]) {
    				for (c = argv[1][i - 1]; c >= argv[1][i + 1]; c--)
    					putc(c, stdout);
    			} else
    				for (c = argv[1][i - 1]; c <= argv[1][i + 1]; c++)
    					putc(c, stdout);
    		}
    	}
    
    	return EXIT_SUCCESS;
    }
    
    
    Muj program zabira mene mista nez ten od Hanicka, ma vice features, funguje se vsemi variantami a je ready to use s bashem: [a-z0-9] a-z0-9 [z-a9-0] z-a9-0 [a-zz-a0-99-0] a-zz-a0-99-0

    Staci jen zkompilovat: gcc -Wall -std=gnu99 -pedantic -O2 -o programname programname.c
    Hanička avatar 20.3.2008 21:18 Hanička | skóre: 3 | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    No já jsem sem jen poslala část kódu z mého projektu, vlastní regexpy :)
    20.3.2008 11:02 depka
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    ale autor to zrejme chce v BASHi a me by to taky zajimalo
    20.3.2008 11:43 ,/.
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Ale BASH zadnou takovou funkci nema, proto je jedinou moznosti spustit pres BASH externi program, ktery to provede a vysledek vypise na obrazovku. Vzhledem k tomu ze v GNU/Linux ani UNIX zadna utilita zamerena konkretne na toto neexistuje je nejlepsi moznost ridit se heslem "do it yourself", ale pokud s tim nekdo ma problem, jiste se nabizi moznost treba pekne hnusneho scriptu pro sed, nebo jinou prilis obecnou utilitu, ale ja doporucuji tu cistou cestu.
    20.3.2008 12:01 ,/.
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Depka btw. jestli nevis jak muj C program z shellu uzivat, tak zde je example (ve kterem se predpoklada ze program byl zkompilovan s -o prograname a nachazi se v cwd (tj. current working directory) ) :
    #!/bin/bash
    IN="a-zA-Z0-9z-a9-0Z-A"
    OUT=`./programname ${IN}`
    echo "The input string '${IN}' was expanded to '${OUT}'"
    
    20.3.2008 14:38 ams
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Jde to samozrejme vyresit i ciste v BASHI, staci si napsat smycku podobnou vyseuvedene v jazyce C.
    20.3.2008 11:38 depka
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    echo {A..Z} | tr -d ' '
    20.3.2008 14:32 ams
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Jen upresnim:
    promenna='[A-E]'
    temp=`echo $promenna | sed -e 's/\[/{/' -e 's/]/}/' -e 's/-/../'`
    promenna=`eval echo $temp | tr -d ' '`
    
    20.3.2008 16:02 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    Řešení čistě v bash, i když to pravda není moc elegantní :-) ale funguje ;-)
    #!/usr/bin/env bash
    # set -x
    
    if [[ $# -eq 0 ]]; then
    	echo "A[1] B[2] C[3] D[4] E[5] F[6] G[7] ... "
    	echo "priklad: script 1-4"
    	echo "vystup: ABCD"
    	exit 0
    fi
    
    declare -a array0=( 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z )
    NUM1=`echo "$1" | gawk -F - '{print $1}'`
    NUM2=`echo "$1" | gawk -F - '{print $2}'`
    
    ROZDIL=$[$NUM2 - $NUM1]
    if [[ "$ROZDIL" -le 0 ]]; then
    	echo "chybne zadany rozsah"
    	exit 1
    fi
    
    ROZSAH1="$NUM1"
    ROZSAH2=$[$ROZDIL + 1]
    echo `echo ${array0[@]:${ROZSAH1}:${ROZSAH2}} | tr -d " "` 
    21.3.2008 13:18 jm
    Rozbalit Rozbalit vše Re: Bash: promenna="[A-E]" na promenna="ABCDE"
    $ a='[A-E]'; a=${a/[/{}; a=${a/]/}}; a=${a/-/..}; a=$(eval echo ${a}); a=${a// }; echo ${a} ABCDE

    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.