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 10:22 | Zajímavý článek

Lukáš Růžička v článku Kuchařka naší Růži aneb vaříme rychlou polévku z Beameru na MojeFedora.cz ukazuje "jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin".

Ladislav Hagara | Komentářů: 1
dnes 07:22 | Komunita

Od 26. do 29. října proběhla v Bochumi European Coreboot Conference 2017 (ECC'17). Na programu této konference vývojářů a uživatelů corebootu, tj. svobodné náhrady proprietárních BIOSů, byla řada zajímavých přednášek. Jejich videozáznamy jsou postupně uvolňovány na YouTube.

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

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 1
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 957 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Dotaz: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    CIJOML avatar 15.12.2006 17:43 CIJOML | skóre: 58 | Praha
    Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Přečteno: 938×
    Resim jak rozumne prejmenovat rekurzivne vsechny soubory s mezerou v nazvu a nahradit ji podtrzitkem.

    Nejake napady?

    Prvni nastrel nezabral:
    IFS=`
    `
    
    for i in `find . -name \*\ \*`; do mv "$i" `echo "$i" |tr ' ' _`; done
    

    Odpovědi

    15.12.2006 19:56 marbu | skóre: 28 | blog: hromada | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    ja jsem to resil takhle, ale asi by se to dalo napsat lip ...
    #!/bin/bash
    
    for line in `find . -name \*\ \* |  sed 's/\( \)/\\\/g' `; do
    
            # zpracuj $line na puvodni jmeno souboru
            file1=`echo $line | sed 's/\\\/\ /g' `;
    
            # zpracuj $line na nove jmeno souboru
            file2=`echo $line | sed 's/\\\/_/g' `;
    
            mv "$file1" $file2;
    
    done
    
    I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
    CIJOML avatar 15.12.2006 22:11 CIJOML | skóre: 58 | Praha
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Tohle nezabira treba na tohle:

    notas:/home/cijoml/work# find . -name \*\ \*
    ./HP1220CD_install/Symbol_Sets/SYM readme.txt
    
    Fuky avatar 15.12.2006 20:31 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    for i in $(seq 10); do
      find -mindepth $i -maxdepth $i |xargs -i rename "s/ /_/g" {}
    done
    

    CIJOML avatar 15.12.2006 22:09 CIJOML | skóre: 58 | Praha
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    potrebuju to, bohuzel, na neomezeny pocet urovni
    16.12.2006 10:32 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Defaultně není rekurze omezená, stačí nespecifikovat -mindepth / -maxdepth.
    Fuky avatar 16.12.2006 12:57 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    depth=$(find -printf "%d\n" |sort -gr |head -n 1)
    
    for i in $(seq $depth); do
      find -mindepth $i -maxdepth $i |xargs -i rename "s/ /_/g" {}
    done
    

    16.12.2006 22:52 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Myšlenka procházet to od listů po hladinách až ke kořeni je správná, ale nelíbí se mi to. Raději bych postupoval takhle:

    1) vytvořím stejnou adresářovou strukturu někde bokem (ale bez podtržítek), něco jako find "jenom-adresáře" | sed 's/ /_/g; s/^/mkdir -p $CESTA_BOKEM/' | $SHELL

    2) podobně jako v 1 ale jenom na soubory a místo mkdir mv a ještě přidat zdrojovou cestu

    3) smazat starý adresář a nahradit novým
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    masomlejn avatar 16.12.2006 11:25 masomlejn | skóre: 16
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    kdysi davno sem to taky resil:
    #!/bin/bash                                                                                         
    ##################                                                                                  
    
    function rmspc()
    {
        if [ $(echo "$file"| grep -c " ") -ne "0" ]; then
            echo "$file --> $(echo "$file" | sed 's/\ /_/g')"
        fi
    }
    
    function dir()
    {
        for file in *; do
            if [ -d "$file" ]; then
                rmspc
                cd "$file"
                echo "$PWD"
                dir
                cd ..
            else
                rmspc
            fi
        done
    }
    dir
    
    Myslim ze to je "ladici" verze takze tam misto mv je echo. Slo by to urcite udelat lip, ostatne jako vsechno:-)
    16.12.2006 13:01 Petr Zelenka | skóre: 24 | Semice/Stuttgart (Sindelfingen)
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    Ahoj,

    a co třeba tohle:

    find <"kořenový" adresář> -exec rename 's/([^\ ]*)\ ([^\ ]*)/$1_$2' {} +

    kde kořenovým adresářem myslím kořen podstromu vaší adresářové struktury, kterého se to má týkat. Tato ukázka počítá jen s jednou mezerou v názvu souboru.

    A teď si uvědomte, jaký je vztah mezi krychlí a motýlem.
    Fuky avatar 16.12.2006 19:34 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    find -depth -exec rename "s/(?!.*\/) +(?=[^ ]*)/_/g" {} \;

    CIJOML avatar 16.12.2006 22:27 CIJOML | skóre: 58 | Praha
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Nejak tohle nemaka

    cijoml@notas:~$ find -depth -exec rename "s/(?!.*\/) +(?=[^ ]*)/_/g" {} \; bash: !.*\/: event not found

    BTW kdo to oznacil za odpovezene?!
    Fuky avatar 16.12.2006 23:42 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    find -depth -exec rename 's/(?!.*\/) +(?=[^ ]*)/_/g' {} \;

    BTW: Bash 3.1.17(1)-release to vezme i s uvozovkami a Bash 2.05b.0(1)-release jen s apostrofy.

    18.12.2006 11:57 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    perl -mFile::Find=finddepth -le 'finddepth(sub{m/\s/ and do{(my $a=$_) =~ s/\s/_/g; rename $_, $a}}, @ARGV)' .
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 13:13 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Kratší varianta:
    perl -mFile::Find=finddepth -e 'finddepth(sub{($a=$_)=~y/ /_/and rename $_,$a}, @ARGV)' .
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 12:28 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Mimochodem, píšeš jen o souborech, co se má stát s adresáři zůstává záhadou.
    IFS=`
    `
    je co? To se má jako provést nic a výsledek nic se má uložit do proměnné? Snad jsi chtěl napsat
    IFS=$"\n"
    A
    for i in `find . -name \*\ \*`
    je co jako? To nikdy, opravdu nikdy nedělej! Když tak
    find . -name '* *' |
    while read filename
    do
      ...
    done
    a jde to i bez IFS. Místo
    mv "$i" `echo "$i" |tr ' ' _`
    se píše
    mv "$i" "${a// /_}"
    No a používat na tohle find samozřejmě jde, ale asi bych to udělal perlem nebo nějak takhle
    find -depth -name '* *' -exec rename 'my ($dir, $name) = m,(.*)/(.*),;$name=~y/ /_/;$_=join"/", $dir,$name' {} +
    a nebo rovnou tu verzi v perlu.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 12:29 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Sorry překlep, místo
    mv "$i" "${a// /_}"
    jsem samozřejmě myslel
    mv "$i" "${i// /_}"
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    CIJOML avatar 18.12.2006 12:40 CIJOML | skóre: 58 | Praha
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    To IFS je pretypovani oddelovace z mezery na enter :)

    Funguje i verze od 16.12. 23:42 Fuky, kterou jsem nakonec pouzil.

    Slo mi i o prejmenovani adresaru s mezerou na podtrzitko
    18.12.2006 13:19 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    To IFS je pretypovani oddelovace z mezery na enter :)
    Vážně? Tak to se asi musím něco přiučit
    $ IFS=`
    > `
    $ echo ">$IFS<"
    ><
    $ IFS=$'\n'
    $ echo ">$IFS<"
    >
    <
    
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 13:31 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Funguje i verze od 16.12. 23:42 Fuky, kterou jsem nakonec pouzil.
    No jak chceš, je to tvůj boj, ale až budeš potřebovat přejmenovat pár desítek tisíc souborů, tak rozhodně zkus
    find -depth -name '* *' -exec rename 'my@a=split"/";$a[$#a]=~y/ /_/;$_=join"/",@a' {} +
    nebo perlish. Přece jen to bude rychlejší.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 13:56 Tomáš | skóre: 29 | blog: Tomik
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    To jsem resil na obecnejsi urovni v Pythonu. Konvertoval jsem navic ceske znaky atd.
    #!/usr/bin/python
    # -*- coding:  utf-8
    
    '''Přejmenuje všechny soubory a adresáře v aktuálním adresáři tak,
       aby to mělo nějakou kulturu. Rekurzivně pracuje i ve vnořených
        adresářích. Změny jsou následující:
        české znaky -> anglické
        zruší všechny pomlčky a mezery na začátku názvu (hovado, které takové
                názvy tvoří, by zasloužilo pár facek)
        zvláštní znaky se nahradí '_', pomlčku beru na milost, ale ne na začátku
        vyhodí se (zbytečné) '_' kolem pomlčky
        násobné '_' se nahradí jediným výskytem
        vše se převede na malá písmena
    
        Výsledkem by měl být název, kde jsou jenom písmena, podtržítka,
        číslice, tečky a pomlčky (ale ne na začátku).
        Na standardní výstup píše, co přesně dělá
        Použití: vycisti.py [ > logfile ]
    '''
    
    import re
    import os
    import unicodedata
    
    class RenameFiles:
        def __init__(self):
            if os.environ.get('OS','') == 'Windows_NT':
                self.locale = "cp1250"
            else: #probably linux
                local = os.environ.get('LANG', '')
                if '.' in local: #Fedora way
                    self.locale = local.split('.')[1]
                else: #Debian
                    self.locale = local
    
        def cleanString(self, what):
            '''Gets rid of letters which are not in English alphabet'''
            assert type(what) == unicode
            normalized = unicodedata.normalize('NFKD', what)
            output = ''
            for c in normalized:
                if not unicodedata.combining(c):
                    output += c
            return output
    
        def cleanName(self, fileName):
            '''Convert the givne string into a form which is suitable for a file name'''
            assert type(fileName) == str
            fileName = self.cleanString(fileName.decode(self.locale))
            fileName = re.sub("^[-\ ]+", "", fileName) #delete space or dash at the beginning
            invalid_stuff = re.compile(r"[^a-zA-Z0-9_\.-]+") #forbidden characters (non-alfanumerical)
            fileName = invalid_stuff.sub("_", fileName.strip()) #replace invalid stuff and spaces by _,
            fileName = re.sub("_+", "_", fileName) #squeeze continuous underscores to one _
            fileName = re.sub("-+", "-", fileName) #squeeze continuous dashes to one _
            fileName = re.sub("_*-_*", "-", fileName) #removes useless '_' round the dash
            fileName = re.sub("_*\._*", ".", fileName) #removes useless '_' round the dot
            fileName = re.sub("-*\.-*", ".", fileName) #removes useless '-' round the dot
            fileName = fileName.lower() #lower case
            valid_name=re.compile(r"^[a-z0-9_\.][a-z0-9_\.-]+$") #regular expression for feasible name
            if not valid_name.match(fileName):
                print "Warning: '%s' is still not valid name" % fileName
            return fileName.encode(self.locale)
    
        def renameFile(self, dir, fileName):
            '''Public: Renames the file fileName in the directory'''
            assert type(fileName) == str
            assert type(dir) == str
            new = self.cleanName(fileName)
            if (new != "" and new != fileName):
                print "Renaming %s: %s -> %s" % (dir, fileName, new) #kontrolní výpis
                os.rename(dir+os.sep+fileName, dir+os.sep+new)
                return
    
        def process_dir(self, dir):
            """process all files in the folder"""
            assert type(dir) == str
            for f in os.listdir(dir):
                file = dir + os.sep + f
                if os.path.isdir(file): #if it is directory
                    self.process_dir(file) #process the elements in the directory
                    self.renameFile(dir, f) #rename the directory itself
                else:
                    self.renameFile(dir, f) #if it is a file
            return
    
    if __name__=='__main__':
            renamer = RenameFiles()
            renamer.process_dir('.')
    
    
    18.12.2006 14:14 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Můžete mi vysvětlit tyhle dva řádky?
            fileName = re.sub("_+", "_", fileName) #squeeze continuous underscores to one _
            fileName = re.sub("-+", "-", fileName) #squeeze continuous dashes to one _
    
    Podle mého laického názoru jsou tam naprosto zbytečné. V tu chvíli tam totiž žádné - už nemůže být a všechny _ jsou tam vždy jen jednou. A nebo taky je možné, že reguláry v pythonu fungují naprosto jinak než jinde :-) No a vůbec, ta práce s reguláry je schválně napsaná takto, aby se počítač pokudmožno nenudil, že? Spousta jich jde sdružit a taky co kdyby se skompilovaly jen jednou (aspoň pro ten objekt, když ne rovnou pro celou třídu) a nedělaly se pro každý soubor znova ;-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    21.12.2006 14:56 Tomáš | skóre: 29 | blog: Tomik
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Ad 1) Bylo to motivovano tim, ze napr sekvence _-_ se prevede na ___ a potom ma vyznam dve podtrzitka vyhodit. Ale kazdopadne netvrdim, ze to je uplne spravne

    Ad 2) Regularni vyrazy jsou tak rozhazene, abych se v nich vyznal. Nepusobi to zadne vaznejsi vykonostni problemy, a to mam slaby stroj. Pokud se Vam chce je nejak optimalizovat be zztraty prehlednosti, tak bude rad.

    Mimochodem, mam tam i chybku v inicializaci self.locale, ale to si kazdy opravi podle potreby.
    21.12.2006 16:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Áha, už to vidím. Teda ono se _-_ na nic nepřevede, protože - není invalid_stuff. Když tak koukám na tu dokumentaci sre v Pythonu, tak to je teda pěkně nepohodlné proti perlu. Třeba kompilace jen jednou je tam brnkačka, děje se to transparentně a člověk o tom skoro ani neví a na využití byť jen hloupého (), aby člověk studoval kdo ví co.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    21.12.2006 17:47 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    No python není zrovna moje hobby, ale rozhodně bych přinejmenším předělal tu část cleanName asi nějak takto
        __start_trash = re.compile(r'^[- ]+').sub
        startCleaner = lambda x: __start_trash('', x)
        
        __invalid_stuff = re.compile(r'[^a-zA-Z0-9.-]+').sub
        invalidStuffRemover = lambda x: __invalid_stuff('_', x)
        
        __useless_chars = re.compile(r'[-_]*([-.])\1*[-_]*').sub
        uselessCharsRemover = lambda x: __useless_chars(r'\1', x)
        
        validName = re.compile(r'^[a-z0-9_\.][a-z0-9_\.-]+$').match
        
        def cleanName(self, fileName):
            '''Convert the givne string into a form which is suitable for a file name'''
            assert type(fileName) == str
            fileName = self.cleanString(fileName.decode(self.locale))
            fileName = self.startCleaner(fileName.strip()) #delete space or dash at the beginning
            fileName = self.invalidStuffRemover(fileName) #replace invalid stuff and spaces by _,
            fileName = self.uselessCharsRemover(fileName) #remove useless chars
            fileName = fileName.lower() #lower case
            if not self.validName(fileName):
                print "Warning: '%s' is still not valid name" % fileName
            return fileName.encode(self.locale)
    
    Jak říkám v pythonu nemám moc praxe, ale asi takhle. Kdybych v tom měl napsaných tolik desítek tisíc řádků jako v perlu, tak by to bylo lepší. V pricipu jde o to, aby se toho co nejméně dělalo dvakrát. Když si uvědomím, že tohle kolem kompilace těch regexpů jen jednou za mě udělá perl aniž by si to 99% programátorů v perlu vůbec uvědomilo, tak se mi ten python zas až tak moc nelíbí, ale když si stím člověk pohraje, tak ty programy mohou vypadat k světu a zároveň být efektivní.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    18.12.2006 20:50 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše convmv
    Nechci zpochybnovat programatorske kvality mistniho osazenstva, jen bych rad poukazal na nedavnou zpravicku o convmv.
    19.12.2006 10:26 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: convmv
    $ convmv
    bash: convmv: command not found
    
    Ne každý si do systému instaluje každou pičovinku, ale find a rename (and or perl) má skoro každý. I když uvedené příklady jsou pro perlish rename.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    19.12.2006 00:18 Tomas
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka

    Návod do žůžo shellu:

    #!/usr/bin/zsh
    setopt EXTENDED_GLOB
    for f in  **/*\ *(.) ; do mv "$f" "${f:h}/${${f:t}// /_}" ; done
    

    Je to ale skoro nečitelné.

    19.12.2006 09:46 skonciljsem | skóre: 20
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Z hlavy to nevymyslím a shell tu nemám, ale co takhle použít s tím findem xargs?
    19.12.2006 10:23 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Když nevíš, mlč!
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    19.12.2006 16:00 skonciljsem | skóre: 20
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    find . * -type f -print0 | xargs -0 rename ' ' _
    19.12.2006 16:08 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Hmm a adresáře? A o kolik je to efektivnější než to, co už tu bylo napsáno a krom toho není rename jako rename.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    20.12.2006 01:43 skonciljsem | skóre: 20
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Podle pořadí důležitosti:

    Adresáře: Přečti si otázku.

    Tečka mezera hvězdička, tvoje následující odpověď: To je hodně debilně opsané . -name '*'. (Slušný člověk by použil něco jako '* *', ale to jsem o sobě nikdy netvrdil.) Díky.

    Efektivita: Obrovská! Je to pomalý! Ale je to jednoduché a s pomocí manu to uplácá i taková lama jako já. Ještě ke všemu je to typická jednorázovka. Ale kupodivu jsem to tu nepsal ani pro tebe ani pro CIJOMILa(*), ale pro ty kdo začínají. Snad si to tu přečtou, vzpomenou si, až to budou potřebovat, a uplacaji si něco taky.

    (*) Nejsem samolibý magor, jsem pouze samolibý.
    20.12.2006 10:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    Podle pořadí důležitosti:

    Adresáře: Přečti si otázku.
    Přečti si diskusi, otázka byla doplněna.

    Tečka mezera hvězdička, tvoje následující odpověď: To je hodně debilně opsané . -name '*'.
    To hlavně nedělá to co by to dělat mělo.
    (Slušný člověk by použil něco jako '* *', ale to jsem o sobě nikdy netvrdil.) Díky.

    Efektivita: Obrovská! Je to pomalý! Ale je to jednoduché a s pomocí manu to uplácá i taková lama jako já. Ještě ke všemu je to typická jednorázovka. Ale kupodivu jsem to tu nepsal ani pro tebe ani pro CIJOMILa(*), ale pro ty kdo začínají.
    No, tak ti co začínají si doufám přečtou ten man pořádně a kouknou se jak se to dělá. Proč nepoužít xargs? K čemu, když máme + za -exec ve findu? Bez -depth to s adresářema stejně nevyřešíš a jak se ti tam nějakej s mezerou v názvu vyskytne, tak to tvoje řešení prostě zhavaruje.
    Snad si to tu přečtou, vzpomenou si, až to budou potřebovat, a uplacaji si něco taky.

    (*) Nejsem samolibý magor, jsem pouze samolibý.
    Hmm, hlavně s křížkem po funuse, dále je zjevné, že jsi předchozí diskusi vůbec nečetl a prostě jsi jen tak něco plácl. Jen tak plácalů jsou mraky a jsou úplně k ničemu. Raději se řiď radou.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    19.12.2006 16:12 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka
    jo a to find . * má být jako co?
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

    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.