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 14:22 | Zajímavý projekt

GitHub v příspěvku na svém blogu představil GitHub Sponsors. Jedná se o další z možností, jak finančně podpořit vývojáře open source softwaru. Podrobnosti v často kladených dotazech (FAQ).

Ladislav Hagara | Komentářů: 8
dnes 13:44 | Zajímavý software

Společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux vydala počítačovou hru Total War: Three Kingdoms (Wikipedie) pro Linux. Koupit ji lze za 59,99 €. Tentokrát byla verze pro Linux vydána ve stejný den jako verze pro Microsoft Windows.

Ladislav Hagara | Komentářů: 0
dnes 10:00 | Nová verze

Po téměř 11 měsících vývoje od vydání verze 5.28 byla vydána nová stabilní verze 5.30 programovacího jazyka Perl. Do vývoje se zapojilo 58 vývojářů. Změněno bylo přibližně 620 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

Ladislav Hagara | Komentářů: 1
včera 16:44 | Nová verze

Bylo vydáno openSUSE Leap 15.1. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

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

Byla vydána verze 3.14 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl aktualizován na verzi 8.5. Řešeno je také několik bezpečnostních chyb. Především bezpečnostní chyby v procesorech Intel.

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

Byla vydána nová verze 2019.2 průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v seznamu změn. Současně byl ve verzi 2019.2 vydán také Kali Linux NetHunter (Wikipedie), tj. obrazy s nástroji z Kali Linuxu pro chytré telefony a tablety.

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

Vyšel webový prohlížeč Tor Browser, založený na Firefoxu (60.7) a zaměřený na ochranu soukromí, ve verzi 8.5. Mění vzhled, zlepšuje přístupnost a nově je prohlášen za stabilní na Androidu.

Fluttershy, yay! | Komentářů: 0
21.5. 16:11 | Nová verze

Byl vydán Mozilla Firefox 67.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Zdůraznit lze blokování těžby kryptoměn a otisku prohlížeče, viditelnější účet Firefoxu nebo rychlý přístup ke správci hesel.

Ladislav Hagara | Komentářů: 7
21.5. 03:33 | Komunita

Rozšířená podpora operačního systémy Microsoft Windows 7 skončí 14. ledna 2020. Poté je možné využít placené podpory, přejít na Windows 10 nebo prostě na Linux. Vláda Jižní Koreje zkouší Linux. Přechod na Linux včetně nákupu nových počítačů by ji měl vyjít na 655 milionů dolarů.

Ladislav Hagara | Komentářů: 33
21.5. 02:22 | IT novinky

CZ.NIC ODVR (Otevřené DNSSEC Validující Resolvery) nově podporují vedle DNS-over-TLS (DoT) také DNS-over-HTTPS (DoH). DoH lze vyzkoušet ve Firefoxu od verze 62, Chrome od verze 66 nebo Bromite od verze 67.

Ladislav Hagara | Komentářů: 0
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (49%)
 (25%)
 (24%)
 (2%)
Celkem 338 hlasů
 Komentářů: 28, poslední 21.5. 04:02
Rozcestník

Dotaz: Bash - Jak odstranit část cesty

3.2. 23:57 Janek
Bash - Jak odstranit část cesty
Přečteno: 344×
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. 00:12 debian+
Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
4.2. 00:14 Vlado
Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty
dirname
4.2. 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. 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. 01:18 Jendа | skóre: 75 | blog: Výlevníček | 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
I was just trying to exit Vim and all of this happened!
4.2. 01:51 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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
ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
Řešení 1× (Bherzet)
4.2. 01:58 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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. 02:02 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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. 14:57 k3dAR | skóre: 54
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. 23:18 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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. 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. 23:10 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

Ne, dirname.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
4.2. 14:19 Kit | skóre: 43 | 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. 23:16 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Bash - Jak odstranit část cesty

Plus / na konec…

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
4.2. 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.