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 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 18:22 | IT novinky

    T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | IT novinky

    Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.

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

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 17.0. Přidáno bylo 4 803 nových znaků. Celkově jich je 159 801. Přibylo 7 nových Emoji.

    Ladislav Hagara | Komentářů: 0
    9.9. 21:00 | IT novinky Ladislav Hagara | Komentářů: 10
    9.9. 18:33 | Nová verze

    Realtimová strategie Warzone 2100 (Wikipedie) byla vydána ve verzi 4.6.0. Podrobný přehled novinek, změn a oprav v ChangeLogu na GitHubu. Nejnovější verzi Warzone 2100 lze již instalovat také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 1
    9.9. 12:22 | IT novinky

    Polské vývojářské studio CD Projekt Red publikovalo na Printables.com 3D modely z počítačové hry Cyberpunk 2077.

    Ladislav Hagara | Komentářů: 1
    9.9. 11:44 | Pozvánky

    Organizátoři konference LinuxDays 2025 vydali program a zároveň otevřeli registrace. Akce se uskuteční 4. a 5. října na FIT ČVUT v pražských Dejvicích, kde vás čekají přednášky, workshopy, stánky a spousta šikovných lidí. Vstup na akci je zdarma.

    Petr Krčmář | Komentářů: 7
    8.9. 22:00 | IT novinky

    Uživatelé komunikátoru Signal si mohou svá data přímo v Signalu bezpečně zálohovat a v případě rozbití nebo ztráty telefonu následně na novém telefonu obnovit. Zálohování posledních 45 dnů je zdarma. Nad 45 dnů je zpoplatněno částkou 1,99 dolaru měsíčně.

    Ladislav Hagara | Komentářů: 0
    8.9. 18:44 | Zajímavý článek

    Server Groklaw, zaměřený na kauzy jako právní spory SCO týkající se Linuxu, skončil před 12 lety, resp. doména stále existuje, ale web obsahuje spam propagující hazardní hry. LWN.net proto v úvodníku připomíná důležitost zachovávání komunitních zdrojů a upozorňuje, že Internet Archive je také jen jeden.

    🇵🇸 | Komentářů: 29
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (83%)
     (7%)
     (2%)
     (2%)
     (4%)
     (2%)
    Celkem 161 hlasů
     Komentářů: 12, poslední včera 13:00
    Rozcestník

    Dotaz: Problém s funkcí sort

    3.11.2017 17:00 matěj
    Problém s funkcí sort
    Přečteno: 756×
    Ahoj chlapi, proč nemůžu setřídít položky v poli? Oba dva příkazy vyplivnou zcela stejný výsledek?
    for arr in "${ARR[@]}"; do echo $arr; done | sort
    for arr in "${ARR[@]}"; do echo $arr; done
    Chybí tam něco? Nějaké nápady? Zkoušel jsem to i takto, no výsledek je nefunkční.
    ARR=($(sort "${ARR[@]}"))
    

    Řešení dotazu:


    Odpovědi

    3.11.2017 17:53 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Problém s funkcí sort

    Asi by to chtělo blíž popsat, co přesně je v tom poli ARR. Mně třeba tohle funguje a třídí/netřídí, přesně jak bych čekal:

    ARR=(c b a)
    for arr in "${ARR[@]}"; do echo "$arr"; done | sort
    for arr in "${ARR[@]}"; do echo "$arr"; done

    Takže odhaduju, že problém s tříděním se může týkat buď (a) něčeho neobvyklého, co máš v poli ARR, nebo (b) nastavení locale, které způsobuje překvapivé pořadí při třídění.

    3.11.2017 17:57 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Problém s funkcí sort

    Jo a to druhé, co uvádíš, mi taky funguje (když tedy správě ošetřím, že sort potřebuje mít na vstupu oddělovače řádků):

    ARR=(c b a)
    echo "Před tříděním: ${ARR[*]}"
    ARR=($(for arr in "${ARR[@]}"; do echo "$arr"; done | sort))
    echo "Po třídění: ${ARR[*]}"
    
    3.11.2017 18:35 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Problém s funkcí sort
    Ještě jedna technická, jen tak pro úplnost, aby to někde na těch Internetech bylo: Co dělat, když jsou v tom poli mezery? Třeba tohle:
    ARR=('c d' 'b c' 'a b')
    
    echo 'Před tříděním:'
    for idx in "${!ARR[@]}"; do echo "${idx}: ${ARR[idx]}"; done
    
    readarray -t ARR < <(for arr in "${ARR[@]}"; do echo "$arr"; done | sort)
    
    echo 'Po třídění:'
    for idx in "${!ARR[@]}"; do echo "${idx}: ${ARR[idx]}"; done
    
    4.11.2017 17:08 gll
    Rozbalit Rozbalit vše Re: Problém s funkcí sort
    printf '%s\n' "${ARR[@]}"
    printf '%s\n' "${ARR[@]}" | sort
    
    5.11.2017 04:40 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Problém s funkcí sort

    Jo, to je mnohem lepší! Toho jsem si doteď nikdy nevšiml, že printf v Bashi interpretuje formátovací řetězec znova od začátku, když najde další argumenty.

    7.11.2017 12:13 matěj
    Rozbalit Rozbalit vše Re: Problém s funkcí sort
    Ono to třídí nějak divně, je tam potřeba dát i nějaký parametr?
    ARR=(c b a 9 8 7 6 5 4 1 2 10 100 200)
    echo "Před tříděním: ${ARR[*]}"
    ARR=($(for arr in "${ARR[@]}"; do echo "$arr"; done | sort))
    echo "Po třídění: ${ARR[*]}"
    Před tříděním: c b a 9 8 7 6 5 4 1 2 10 100 200
    Po třídění: 1 10 100 2 200 4 5 6 7 8 9 a b c
    Řešení 1× (Vladimír Čunát)
    7.11.2017 12:21 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Problém s funkcí sort
    sort -n
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    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.