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 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
dnes 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
dnes 00:08 | Pozvánky

V sobotu 18. 2. se v Praze v prostorách VŠE uskuteční od 9:30 již 4. ročník největší české konference o open source redakčním systému WordPress (WP) - WordCamp Praha 2017.

… více »
smíťa | Komentářů: 0
včera 23:58 | Komunita

Kryptoměnová komunita zahájila nový rok spuštěním projektu Blockchain.cz, jehož cílem je kolektivně nalézt ideální překlad pro čím dál frekventovanější slovo „blockchain“. Přispět návrhem může kdokoli. Sběr bude trvat až do konce září 2017. Následně bude probíhat dvoutýdenní veřejné hlasování, které bude zakončeno výběrem toho nejlepšího návrhu.

xHire | Komentářů: 5
včera 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno je celkově 270 bezpečnostních chyb. V Oracle Java SE je například opraveno 17 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 16 z nich. V Oracle MySQL je opraveno 27 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 5 z nich.

Ladislav Hagara | Komentářů: 0
včera 02:48 | Nová verze

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 28
včera 00:33 | Komunita Ladislav Hagara | Komentářů: 8
18.1. 17:30 | Zajímavý článek

Mozilla.cz informuje, že webový prohlížeč Firefox bude od verze 53 obsahovat integrovaný prohlížeč dat ve formátu JSON. Firefox kromě strukturovaného prohlížení nabídne také možnost filtrace a uložení na disk. Dle plánu by měl Firefox 53 vyjít 18. 4. 2017.

Ladislav Hagara | Komentářů: 1
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (11%)
Celkem 333 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    Dotaz: bash - sed

    23.3.2012 20:31 Petra
    bash - sed
    Přečteno: 398×
    Zdravím, potřeboval bych poradit s regulárním výrazem pro sed. Mám cesty k souborům: /slozka/slozka/podslozka/soubor1 /slozka/podlozka/soubor2 /slozka/soubor3

    a potřebuju odstranit název souboru včetně posledního lomítka.

    Zatím mám sed 'ss\(/.*/\).*s\1s', ale zůstane mi to poslední lomítko.

    Odpovědi

    23.3.2012 21:03 rubicon
    Rozbalit Rozbalit vše Re: bash - sed
    man dirname

    sed -r 's/\/[^/]+$//'
    23.3.2012 23:55 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: bash - sed

    Iba cisto bash, kedze toto pohodlne zvladne.

    #! /bin/bash
    # zadefinuj cestu k suboru
    file=
    while read line
    do
            path="${line%/*}"
            [ -n "$path" ] && echo "$path" || echo '/'
    done < "$file"
    24.3.2012 15:35 Petra
    Rozbalit Rozbalit vše Re: bash - sed
    Děkuji Vám. Ještě mám jeden problém. Nacházím se v adresáři /home/adresar1/adresar2 a poté použiju příkaz cd ./adresar3 Zjistila jsem, že ne na všech OS to funguje a někde dostanu hlášku line 66: cd: ./adresar3: No such file or directory. Je možné tuto chybu odstranit odstraněním prefixu? Případně jak na to pomocí utility sed. Děkuji.
    24.3.2012 16:16 alkoholik | skóre: 35 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: bash - sed
    A na jakych OS?
    "." v unix like systemech je normalni polozka v adresari (viz ls -la), ktera by mela ukazovat na dany adresar. V testech je celkem normalni otazka kolik inode ukazuje na dany adresar (jedna v nadrazenem, jedna primo v nem a po jedne v podadresarich).
    Pokud to zkusite na OS, ktery tu polozku nema, tak to samozrejme fungovat nemuze a je potreba ji odstranit.
    24.3.2012 16:34 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: bash - sed

    Mozno by bolo vhodne sem dat cely Vas skript, teda pokial to nie je tajne nieco. :) Lahsie by sa nasla chyba, pretoze ta hlaska je jednoducho dost vystizna. Ako pomocku si mozte dat tesne pred cd ./adresar3 echo $PWD a zistite, ci sa skutocne nachadzate, kde by ste sa nachadzat chceli a to nejak takto:

    echo "Umiestnenie : $PWD"  # malo by vratit /home/adresar1/adresar2 , podla zadania
    cd ./adresar3

    Sed je sice velmi sikovny nastroj, ale vsetko nelieci ani on. Je sed podmienkou vo Vasom skripte ?

    24.3.2012 16:52 Petra
    Rozbalit Rozbalit vše Re: bash - sed
    /home/adresar1/adresar2 (vypsalo se po použití pwd)

    ./script.sh: line 66: cd: ./adresar3: No such file or directory

    Poté mám příkaz cd .. a jelikož se nedostanu do adresar3, tak se po tomto dostanu do adresar1 místo zpět do adresar2.
    24.3.2012 17:12 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: bash - sed
    No prostě adresar3 v aktuálním adresáři neexistuje (case-sensitive ?), a jinak provedení cd je třeba otestovat.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    24.3.2012 17:30 Petra
    Rozbalit Rozbalit vše Re: bash - sed
    class="brush: bash"
    cd "$dir"
      for tdir in $(find . -type d); do
        echo "tdir je $tdir"
        echo "Umisteni: $PWD"
        cd "$tdir"
        echo "Umisteni po zmene: $PWD"
    
    • tdir je ./adresar3
    • Umisteni: /home/adresar/adresar2
    • Umisteni po zmene: /home/adresar/adresar2
    24.3.2012 18:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: bash - sed
    Asi se špatně vracíte.
    #!/bin/bash
    startPath='/tests/petra/test'
    cd "$startPath"
    if [ "$?" -ne "0" ]; then
      echo "Startovaci adresar neexistuje"
      exit 3
    fi
    for tdir in $(find . -mindepth 1 -type d); do
      echo "----------"
      echo ""tdir je $tdir"
      echo "Umisteni: $PWD"
      cd "$tdir"
      echo "Umisteni po zmene: $PWD"
      cd "$startPath"
      echo "----------"
    done
    
    Nevím jestli to byl záměr, ale find Vám vracel i '.'
    PS: find takto hledá recursivně, ne jen v tom adrsáři…
    …a každé cd by mělo být testováno - to že to find najde ještě neznamená, že cd nezklame…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    24.3.2012 18:30 Petra
    Rozbalit Rozbalit vše Re: bash - sed
    Děkuji všem. Už mi to došlo, opravila jsem to jedním ifem. Ta . tam nejdřív nebyla, ale na FreeBSD mi bez ní find vypisoval chybu, na ubuntu, kubuntu, CentOS, ... to fungovalo i bez ní.

    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.