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 13:00 | IT novinky

    Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).

    Ladislav Hagara | Komentářů: 2
    dnes 12:44 | IT novinky

    Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.

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

    Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou

    … více »
    karkar | Komentářů: 2
    dnes 01:55 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 21:33 | Nová verze

    Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Zajímavý software

    TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.

    Ladislav Hagara | Komentářů: 6
    včera 12:22 | IT novinky

    Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.

    Ladislav Hagara | Komentářů: 10
    včera 03:44 | Komunita

    Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.

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

    Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).

    Ladislav Hagara | Komentářů: 9
    včera 00:22 | Nová verze

    Byla vydána grafická knihovna Mesa 26.0.1 s podporou API OpenGL 4.6 a Vulkan 1.4. Je to první stabilní verze po 26.0.0, kde se novinky týkají mj. výkonu ray tracingu na GPU AMD a HoneyKrisp, implementace API Vulkan pro macOS.

    |🇵🇸 | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (13%)
     (26%)
    Celkem 968 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    23.11.2018 10:42 Honza
    procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Přečteno: 478×
    Mám adresáře A1-A12, B1-B12 atd. a v každém je soubor s názvem "assembly.fa", ale jeho obsah je v každém adresáři jiný. Potřebuji tyto soubory překopírovat třeba do /home s tím, že se soubor přejmenuje podle názvu adresáře. Tj. z adresáře A1 se bude jmenovat A1assembly.fa atd.. Nezvládl by někdo script, který to udělá? Přiznávám, že programovat neumím, tak píšu sem. Díky

    Řešení dotazu:


    Odpovědi

    23.11.2018 11:12 debian+
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Obsahuj adresare medzeru?
    Řešení 1× (Filip Jirsák)
    23.11.2018 11:20 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    cd '/zdrojový/adresář'
    for dir in {A..B}{1..12}; do
      cp "${dir}/assembly.fa" '/cílový/adresář/'"${dir}assembly.fa"
    done
    
    23.11.2018 11:29 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    Tohle^^^ tedy samozřejmě předpokládá, že jsou všechny ty adresáře v jednom a tom samém společném adresáři. Tady je jednoduchý ilustrativní příklad / test:

    mkdir nějaký_pokus cíl
    cd nějaký_pokus
    mkdir {A..B}{1..12}
    touch {A..B}{1..12}/assembly.fa
    cd ..
    for dir in {A..B}{1..12}; do
      cp "nějaký_pokus/${dir}/assembly.fa" "cíl/${dir}assembly.fa"
    done
    ls -l cíl
    rm -Rf nějaký_pokus cíl
    
    23.11.2018 11:49 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    Pokud ty adresáře můžou být libovolně vnořené v jiných adresářích, tak třeba takto:

    find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \
    | while read dir; do
        cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa"
      done
    

    Opět ukázka s triviálním testem (která sice netestuje hlubší zanoření adresářů, protože jsem extrémně líný, ale mělo by to i s hlubším zanořením fungovat):

    mkdir 'zdroj' 'cíl'
    mkdir 'zdroj/'{A..B}{1..12}
    touch 'zdroj/'{A..B}{1..12}'/assembly.fa'
    find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \
    | while read dir; do
        cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa"
      done
    ls -l 'cíl'
    rm -Rf 'zdroj' 'cíl'
    
    23.11.2018 12:44 Honza
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Perfektní, funguje to. Ušetří mě to případných chyb při otravném ručním přepisování. Díky moc!
    23.11.2018 11:34 debian+
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Skopiruj, prepis do terminalu a na zaciatku prikazu si nastav premenna (dopis do uvodzoviek), ze z kadial (odkial) a kam ma skopirovat. A medzera nesmie byt v nazve KAM a Z (ak by treba, povedz, osetrim). V ich podadresarov moze.
    KAM=""; Z=""; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bash
    A u mna "demo" (pouzil som absolutne cesty, mozes pouzit i relativne):
    $ KAM="/tmp/kam"; Z="/tmp/z/"; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bash 
    '/tmp/z/b/assembly.fa' -> "/tmp/kam/'_tmp_z_b_assembly.fa'"
    '/tmp/z/a/assembly.fa' -> "/tmp/kam/'_tmp_z_a_assembly.fa'"
    $ 
    23.11.2018 14:03 Honza
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Opet perfektni. Take dekuju.
    Řešení 1× (Filip Jirsák)
    Josef Kufner avatar 23.11.2018 12:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Prostě stačí přejmenovat tak, že odstraníš lomítko.
    rename 's/\///' */assembly.fa
    Hello world ! Segmentation fault (core dumped)
    23.11.2018 13:54 Honza
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Script od Andreje jeste chapu, rename 's/\///' */assembly.fa je na me uz hardcore. Ale taky to funguje. Take diky.
    k3dAR avatar 23.11.2018 17:14 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Jde o sed syntax 's/neco/zaneco/' s je najdi a zamen, / je vychozi oddelovac, protoze chces nahradit / musis ho escapovat znakem \, protoze nechces / nahradit ale odstranit tak "zaneco" nechas prazdne... pro lepsi pochopeni lze zmenit oddelovac na "cokoliv" jineho, treba #, pak by to u tebe bylo 's#/##', muzes si to vyzkouset se sedem:
    echo "nazdar honzo" | sed 's/nazdar/ahoj/'
    Pokud by se meli zmeni vsechny vyskyty na radku, pridas na konec g: 's/neco/zaneco/g'
    porad nemam telo, ale uz mam hlavu... nobody
    23.11.2018 17:47 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    To je skript pro sed (stream editor). Úvodní s znamená nahrazení (substitute) a pak následují dva výrazy oddělené (v tomto případě) lomítky, první je regulární výraz a druhý je šablona k nahrazení. Nelze než doporučit manuálové stránky, protože tohle vyžaduje pochopení rour (pipe) a regulárních výrazů.

    Ještě bych doplnil, že pro jednoduché případy umí přesně tohle i samotný shell při expanzi proměnných a není tedy nezbytně potřeba další proces.

    text='aabbcc'
    echo "${text}"          # aabbcc
    echo "${text/b/z}"      # aazbcc
    echo "${text//b/z}"     # aazzcc
    echo "${text/[ac]/z}"   # zabbcc
    echo "${text/%[ac]/z}"  # aabbcz
    echo "${text//[ac]/z}"  # zzbbzz
    

    Význam jednotlivých znaků je popsaný v man bash, kapitola Expansion / Parameter Expansion.

    27.11.2018 08:58 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Pozor. Tohle nemusí fungovat by default. Pro jistotu doporučuji do skriptu na začátek přidat:
    …
    shopt -s extglob
    …
    
    27.11.2018 12:13 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    Žádný z mnou uvedených příkladů nevyžaduje extglob, pokud se nepletu. Ten bývá většinou implicitně zapnutý, ale aby ho člověk fakt využil, musel by tam jako pattern zapsat něco z tohoto:

           If  the  extglob  shell option is enabled using the shopt builtin, several
           extended pattern matching operators  are  recognized.   In  the  following
           description, a pattern-list is a list of one or more patterns separated by
           a |.  Composite patterns may be formed using one or more of the  following
           sub-patterns:
    
                  ?(pattern-list)
                         Matches zero or one occurrence of the given patterns
                  *(pattern-list)
                         Matches zero or more occurrences of the given patterns
                  +(pattern-list)
                         Matches one or more occurrences of the given patterns
                  @(pattern-list)
                         Matches one of the given patterns
                  !(pattern-list)
                         Matches anything except one of the given patterns
    
    27.11.2018 13:30 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam
    Dík za upřesnění. Využívám toho docela hodně, a bylo pro mne bylo docela překvapení, když byl ten extglob vypnutý, proto ho ve skriptech pro jistotu zapínám. Typicky toho využívám třeba v situaci, když chci ořezat textový řetězec, pro různé testy, atp.
    23.11.2018 17:27 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: procházení adresářů a kopírování souborů a jejich přejmenování jinam

    On to ale chtěl zkopírovat, zatímco rename všechno přesouvá (jako mv).

    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.