abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:33 | Komunita

    Nintendo žaluje Tropic Haze, tj. společnost zastřešující vývoj open source emulátoru přenosné herní konzole Nintendo Switch yuzu (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Nová verze

    Komunita kolem Linuxu From Scratch (LFS) vydala Linux From Scratch 12.1 a Linux From Scratch 12.1 se systemd. Nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů přichází s Glibc 2.39, Binutils 2.42 a Linuxem 6.7.4. Současně bylo oznámeno vydání verze 12.1 knih Beyond Linux From Scratch (BLFS) a Beyond Linux From Scratch se systemd.

    Ladislav Hagara | Komentářů: 0
    1.3. 22:22 | Upozornění

    Google blokuje Chaty RCS (Rich Communication Services neboli rozšířené komunikační služby) na telefonech s rootnutým Androidem nebo odemčeným zavaděčem [9to5Google].

    Ladislav Hagara | Komentářů: 10
    1.3. 12:22 | Komunita

    Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 16. a 17. března v Praze na Karlově náměstí 13. O open source hardwaru bude přednášet Mitch Altman.

    Ladislav Hagara | Komentářů: 1
    1.3. 08:00 | IT novinky

    Počítač NitroPC Pro 2 od společnosti Nitrokey s corebootem Dasharo byl oficiálně certifikován pro Qubes OS verze 4. Qubes OS (Wikipedie) je svobodný a otevřený operační systém zaměřený na bezpečnost desktopu.

    Ladislav Hagara | Komentářů: 1
    1.3. 07:00 | Nová verze

    Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 1.20. Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 19
    29.2. 13:00 | IT novinky

    Jednodeskový počítač Raspberry Pi slaví 12 let. Prodej byl spuštěn 29. února 2012 (Wikipedie, 𝕏).

    Ladislav Hagara | Komentářů: 13
    29.2. 12:00 | Nová verze

    Byla vydána verze 3.2 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    29.2. 11:44 | Nová verze

    Byla vydána nová verze 1.6.0 grafického správce diskových oddílů GParted (GNOME Partition Editor) a také verze 1.6.0 živé distribuce GParted Live, která obsahuje tohoto správce a další nástroje pro zálohování či obnovu dat. Linux byl povýšen na verzi 6.6.15-2.

    Ladislav Hagara | Komentářů: 8
    29.2. 06:00 | Nová verze Ladislav Hagara | Komentářů: 0
    Steam
     (19%)
     (29%)
     (9%)
     (10%)
     (33%)
    Celkem 58 hlasů
     Komentářů: 0
    Rozcestník

    Dotaz: Jednoduchy hledac, ktery ale efunguje

    14.7.2008 11:42 drtic_cz | skóre: 5 | blog: drtic
    Jednoduchy hledac, ktery ale efunguje
    Přečteno: 675×
    Zdravim, mam opet sriptovaci dodaz - delam tadu tuhle zver, abych mohl zjistit, ktere podadresare adresare "stroom" neobsahuji soubory s priponout mp3 . Tenhle me napadl, jakor prvni, lec na vystupu vypisuje prave uplne vsechny podadresarene, dokonce i kdyz dam echo $mp3 misto echo$i nakonec....

    for i in "`ls //f/strom`"; do mp3=`ls //f/strom/"$i" |grep -c mp3` if [ "$mp3" == "0" ] then echo "$i" fi; done

    Tusi nekdo, kde se deje chyba? (Mozna je to zbytecne slozity, ale stejne me zajima, kde jsem udelal chybu... Diky! Spoustim to pod win-bashem, proto ty divne cesty, nicmene stejne se to chova i na linuxu s linuxovymi cestami...
    Arch Linux!

    Odpovědi

    Viliam Púčik avatar 14.7.2008 12:20 Viliam Púčik | skóre: 22 | blog: minimal
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Mozno zafunguje toto:
    for i in $(ls //f/strom); do mp3=$(ls //f/strom/"${i}" |grep -c mp3); if [ "$mp3" == "0" ]; then echo "$i"; fi; done
    
    14.7.2008 14:06 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    To same, jako puvodni. Problem je v tom, ze puvodne i muj script se choval stejne, jako tenhle - nedokaze ale vylistovat napr. adresar, ktery ma v nazvu mezeru. Proto jsem dal puvodni promennou do uvozovek a to zrejme zpusobilo, ze ji nejakym zpusobem spatne interpretuje. Jenze nemuzu prijit na to, kde je chyba :(
    Arch Linux!
    Viliam Púčik avatar 14.7.2008 15:56 Viliam Púčik | skóre: 22 | blog: minimal
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Chyba v povodnom skripte je hned na zaciatku, do premennej i sa nevkladaju cele nazvy adresarov, len ich casti oddelene medzerami :-(, toto by to hadam pomohlo:
    ls -1 //f/strom | while read adresar; do mp3=$(ls //f/strom/"${adresar}" | grep -c mp3); if [ "$mp3" == "0" ]; then echo ${adresar}; fi done
    
    14.7.2008 12:30 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Já bych podadresáře hledal takto:
    for i in `find /f/strom/ \! -name '*.mp3'`; do
    	echo ${i%/*}
    done
    14.7.2008 13:36 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    toto je blbost, prosím ignorovat
    14.7.2008 14:02 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    no, to mi nefunguje vubec, a navic se mi to zrovnatak nezda...
    Arch Linux!
    14.7.2008 15:30 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Problem v tvym vyrazu je, ze kdykoliv neco prevedes na standartni vystup, tak se strati informace o "mezerach v textu" a jsou z toho oddelovace. Proto bych zkusil misto ls normalni hvezdickovou konvenci (oprava tvyho vyrazu):
    for i in //f/strom/*; do mp3=`ls "$i" |grep -c mp3`; if [ "$mp3" == "0" ]; then echo "$i"; fi; done
    Nebo dalsi varianta (takhle bych to napsal asi ja):
    for i in //f/strom/*; do (cd "$i"; ls *.mp3 1>/dev/null 2>&1 || echo "$i"); done
    14.7.2008 15:57 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Jo, to s hvezdickou me napadlo taky, ale zkus si dat echo $i - porad to dokola to prirazuje za i "//f/strom/*" :)
    Arch Linux!
    14.7.2008 16:25 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    To
    //f/strom/*
    nesmi byt v uvozovkach. Dalsi moznost je ze adresar //f/strom/ je prazdny (pak to nahradi puvodnim vyrazem - //f/strom/*). Jinak kdyz to zkusim:
    chocholj@cz995891 ~ $ ls -R ~/tmp/b1 -w 1
    /home/chocholj/tmp/b1:
    a b
    c d
    e f g
    
    /home/chocholj/tmp/b1/a b:
    q w.mp3
    
    /home/chocholj/tmp/b1/c d:
    
    /home/chocholj/tmp/b1/e f g:
    chocholj@cz995891 ~ $  for i in ~/tmp/b1/*; do mp3=`ls "$i" |grep -c mp3`; if [ "$mp3" == "0" ]; then echo "$i"; fi; done
    /home/chocholj/tmp/b1/c d
    /home/chocholj/tmp/b1/e f g
    
    Tak se to chava snad podle ocekavani.
    15.7.2008 16:28 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    V uvozovkach nebyl, jen jsem mu spatne interpretoval cestu...z nejakyho duvodu bash pod win nerozeznava nektere absolutni cesty, kdyz ma pracovni adresar na jinem disku... Kazdopadne moc diky - VYRESENO :)
    Arch Linux!
    14.7.2008 15:30 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Tento skriptík
    #!/usr/bin/python
    import os
    for root, dirs, files in os.walk('.'):
        for filename in files:
            if filename.lower().endswith('.mp3'):
                break
        else:
            print root
    
    1. správně zachází s cestami, i když obsahují mezery, diakritiku, čárky, dolary atd.
    2. běží rychleji než find + xargs + zpracování v shellu
    3. poběží beze změny kódu na linuxu stejně jako na windows
    4. názvy adresářů netestuje, tj. nenechá se zblbnout, jestliže _adresář_ obsahuje koncovku mp3
    5. pracuje rekurzivně (což možná nechceš)
    14.7.2008 21:16 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Souhlas, pokud nebude chtit, aby to jelo rekurzivne, tak staci misto walk pouzit listdir. Takze no problem ;-)
    22.7.2008 15:20 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Python je urcite super, bohuzel ho neovladam :( Mozna casem .-)
    Arch Linux!
    14.7.2008 15:36 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Vypisem si kazdy adresar a adresar kazdeho mp3 suboru. Adresar, ktory sa v zjednoteni tych dvoch vypisov objavi prave raz neobsahuje ziadnu mp3-ku.

    Ak je problem, ze to pracuje rekurzivne, tak obom findom treba pridat switch -maxdepth 1
    ( find -type d ; find | sed -n '/\.mp3$/s;/[^/]*$;;p' ) | sort | uniq -c | grep '^[[:space:]]*1 '
    If you hold a Unix shell up to your ear, you can you hear the C.
    22.7.2008 15:44 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Tak vypis se udelat podarilo, mam soubor se seznamem adresaru. Ted jsem se k tomu vratil a potrebuju v nich dopocitat mp3.. Problemem zrejme bude verze Bashe, kterou jsem nesehnal pod windows vyssi, nez 2.03. Takze: cd //f for i in `cat missing.txt`; do for m in ls `ls $i`; do echo $m; done; done Muzu takhle zaloopovat dve for do sebe? Pac mi to vypisuje ": No such file or directory"... Kdyz misto `ls $i` dam $i/*, nahradi to prvni dva znaky v ceste "/*" ...je to nejaka vlastnost starsiho bashe, musi se na nej jinak?
    Arch Linux!
    22.7.2008 18:45 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Zkuste
    cd /f
    <missing.txt while read dirname; do
      echo "dirname: $dirname"
      for filename in `ls $dirname`; do
        echo "filename: $filename";
      done;
    done
    a pro blok textu používejte značku pre i když ten code láká víc.
    23.7.2008 18:06 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    syntax error :/ asi se naucim scriptovat v perlu...
    Arch Linux!
    Tarmaq avatar 23.7.2008 18:21 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    v perlu ci v bashi?
    Don't panic!
    24.7.2008 16:43 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Vyreseno. Pripojil jsem windowsi partitionu k linuxovemu stroji a scriptiky bezi bez problemu tam. Problem byl proste ve windowsi implementaci bashe, kde se proste nektere prikazy nevykonavaly, jak mely.... :/
    Arch Linux!
    Tarmaq avatar 24.7.2008 17:08 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    btw co myslis tim win-bash ? nejakej cygwin ci co?
    Don't panic!
    24.7.2008 20:55 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Nie. Bash z MSYSu, problem je, ze je vo verzii 2.x a nie 3.x ako je uz roky na Linuxe. Takze nefunguje napr porovnanie =~ v [[ ]] a niektore dalsie ficury z 3.x.
    If you hold a Unix shell up to your ear, you can you hear the C.
    2.8.2008 19:16 drtic_cz | skóre: 5 | blog: drtic
    Rozbalit Rozbalit vše Re: Jednoduchy hledac, ktery ale efunguje
    Presne tak... http://www.steve.org.uk/Software/bash/
    Arch Linux!

    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.