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 18:44 | Komunita

    Organizace Free Software Foundation Europe (FSFE) zrušila svůj účet na 𝕏 (Twitter) s odůvodněním: "To, co mělo být původně místem pro dialog a výměnu informací, se proměnilo v centralizovanou arénu nepřátelství, dezinformací a ziskem motivovaného řízení, což je daleko od ideálů svobody, za nimiž stojíme". FSFE je aktivní na Mastodonu.

    Ladislav Hagara | Komentářů: 10
    včera 17:55 | IT novinky

    Paramount nabízí za celý Warner Bros. Discovery 30 USD na akcii, tj. celkově o 18 miliard USD více než nabízí Netflix. V hotovosti.

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

    Nájemný botnet Aisuru prolomil další "rekord". DDoS útok na Cloudflare dosáhl 29,7 Tbps. Aisuru je tvořený až čtyřmi miliony kompromitovaných zařízení.

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

    Iced, tj. multiplatformní GUI knihovna pro Rust, byla vydána ve verzi 0.14.0.

    Ladislav Hagara | Komentářů: 2
    včera 05:22 | Komunita

    FEX, tj. open source emulátor umožňující spouštět aplikace pro x86 a x86_64 na architektuře ARM64, byl vydán ve verzi 2512. Před pár dny FEX oslavil sedmé narozeniny. Hlavní vývojář FEXu Ryan Houdek v oznámení poděkoval společnosti Valve za podporu. Pierre-Loup Griffais z Valve, jeden z architektů stojících za SteamOS a Steam Deckem, v rozhovoru pro The Verge potvrdil, že FEX je od svého vzniku sponzorován společností Valve.

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

    Byla vydána nová verze 2.24 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    7.12. 15:11 | IT novinky

    Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia online tabulky Proton Sheets v Proton Drive.

    Ladislav Hagara | Komentářů: 5
    6.12. 15:55 | Komunita

    O víkendu (15:00 až 23:00) probíha EmacsConf 2025, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy budou k dispozici přímo z programu.

    Ladislav Hagara | Komentářů: 0
    6.12. 15:44 | Komunita

    Provozovatel internetové encyklopedie Wikipedia jedná s velkými technologickými firmami o uzavření dohod podobných té, kterou má s Googlem. Snaží se tak zpeněžit rostoucí závislost firem zabývajících se umělou inteligencí (AI) na svém obsahu. Firmy využívají volně dostupná data z Wikipedie k trénování jazykových modelů, což zvyšuje náklady, které musí nezisková organizace provozující Wikipedii sama nést. Automatické programy

    … více »
    Ladislav Hagara | Komentářů: 31
    6.12. 15:22 | IT novinky

    Evropská komise obvinila síť 𝕏 z porušení unijních pravidel, konkrétně nařízení Evropské unie o digitálních službách (DSA). Vyměřila jí za to pokutu 120 milionů eur (2,9 miliardy Kč). Pokuta je podle názoru amerického ministra zahraničí útokem zahraničních vlád na americký lid. K pokutě se vyjádřil i americký viceprezident: „EU by měla podporovat svobodu projevu, a ne útočit na americké společnosti kvůli nesmyslům“.

    Ladislav Hagara | Komentářů: 31
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 443 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: Bash - Jak odstranit část cesty

    3.2.2019 23:57 Janek
    Bash - Jak odstranit část cesty
    Přečteno: 481×
    Dobrý večer, nevím jak mám z proměné odstranít string (různé délky) za posledním lomítkem (včetně posledního lomítka). Děkuji

    Řešení dotazu:


    Odpovědi

    4.2.2019 00:12 debian+
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    4.2.2019 00:14 Vlado
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    dirname
    4.2.2019 00:21 Janek
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    Pánové mám v zadání chybu, omlouvám se. Potřebuji odstranit z proměné string (různé délky) před posledním lomítkem (včetně posledního lomítka). Děkuji
    4.2.2019 00:37 Janek
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    Raději uvedu ještě příklady. Tučně označené znaky potřebuji z proměnné odstranit. Děkuji
    sffs/
    asdasd/gfdsfsdf/asdsadas/
    gdgdfg/asdsadasd/fsddgfd/asdsadasds/fsdfdff/sdfdfsdfg/
    Jendа avatar 4.2.2019 01:18 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    $ echo gdgdfg/asdsadasd/fsddgfd/asdsadasds/fsdfdff/sdfdfsdfg/ | rev | cut -d / -f 3- | rev
    gdgdfg/asdsadasd/fsddgfd/asdsadasds/fsdfdff
    
    4.2.2019 01:51 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    Jednoduchý příklad:

    shopt -s extglob
    cesta='asdasd/gfdsfsdf/asdsadas/'
    echo "${cesta%%*([^/])/}"
    

    Podrobněji k tématu:

    cesty=(
      [0]='sffs/'
      [1]='asdasd/gfdsfsdf/asdsadas/'
      [2]='gdgdfg/asdsadasd/fsddgfd/'
      [2]+='asdsadasds/fsdfdff/sdfdfsdfg/'
    )
    
    # Toto je jen pro jistotu; bývá to zapnuté:
    shopt -s extglob
    
    # Pouze výpis pozměněných cest:
    for cesta in "${cesty[@]}"; do
      # První možnost:
      echo "'${cesta}' -> '${cesta%%*([^/])/}'"
    
      # Druhá možnost:
      echo "'${cesta}' -> '${cesta/%*([^\/])\/}'"
    done
    
    # Transformace pole cest do nových polí:
    bez_konce_1=("${cesty[@]%%*([^/])/}")
    bez_konce_2=("${cesty[@]/%*([^\/])\/}")
    
    # Výpis pro kontrolu:
    for index in "${!cesty[@]}"; do
      echo "'${cesty[index]}' -> '${bez_konce_1[index]}'"
      echo "'${cesty[index]}' -> '${bez_konce_2[index]}'"
    done
    
    4.2.2019 01:58 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    Nebo pokud je v tom cvičení povolený dirname ;-) tak takhle:

    shopt -s extglob
    cesta='asdasd/gfdsfsdf/asdsadas/'
    echo "$(dirname "${cesta}")/"
    

    dirname se dá taky použít s těmi poli a dalšími triky výše. Ale pozor, dirname nemusí nutně každý považovat za (čistý) Bash, takže záleží na zadání. :-)

    4.2.2019 02:02 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    extglob je tam teď samozřejmě na houby — copy&paste chyba.

    k3dAR avatar 4.2.2019 14:57 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    v podstate je tam na houby i to echo :-) chapu ze se striktne drzis prikladu kde vypada ze na konci chce mit /, ale vem to z praxe, to pak bude pouzivat ${zjistenej_adresar}${soubor_v_nem}, nebo citelneji ${zjistenej_adresar}/${soubor_v_nem} s tim ze se to interpretuje pak jako // i kdyz to nejspis nicemu nevadi... z praxe je podle me vhodne mit konec promene bez / a lomitko davat v pripade potreby az za tu promenou.
    cesta='asdasd/gfdsfsdf/asdsadas/'
    dirname "${cesta}"
    porad nemam telo, ale uz mam hlavu... nobody
    4.2.2019 23:18 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    Ano, s lomítkem je to složité, zejména když přijde na to, jaký speciální význam mu dává třeba rsync.

    Tady jsem vycházel z toho, že zadání prostě vyžaduje lomítko.

    Řešení 1× (camel1cz)
    4.2.2019 01:01 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    basename
    Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
    4.2.2019 23:10 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    Ne, dirname.

    4.2.2019 14:19 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    echo "${string%/*/}"
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    4.2.2019 23:16 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

    Plus / na konec…

    4.2.2019 15:28 PetebLazar
    Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
    Nestačí pouze k řetězci přidat "../"? ;-)

    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.