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 03:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 7.1 oznámil Linus Torvalds vydání Linuxu 7.2. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | Komunita

    Debian dnes slaví 33 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 1
    včera 04:22 | Komunita

    Probíhá hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu mají na výběr 9 možností (návrhy A až H a žádný z nich).

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

    Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové major verzi 4.0.0 - The Quattro Release. Videopředstavení na YouTube. Celý desktop shell byl přepsán do Quickshellu. Přidána byla podpora pluginů.

    Ladislav Hagara | Komentářů: 1
    15.8. 13:33 | IT novinky

    Francouzská Ústavní rada zamítla zákaz používání sociálních sítí dětem mladším 15 let. Francouzská obdoba ústavního soudu uvedla, že opatření představuje nepřiměřený zásah do svobody projevu. Francouzský parlament zákaz schválil na konci července, začít platit měl od září. Šlo o první zákaz sociálních sítí pro děti v Evropě. Členové Ústavní rady se domnívají, že ustanovení „představuje zásah, který není přiměřený, nezbytný ani

    … více »
    Ladislav Hagara | Komentářů: 1
    14.8. 16:33 | Zajímavý projekt

    Open-source trackball Ploopy Adept má novou verzi nazvanou A+. Stále jde o symetrický desktopový trackball s šasi z 3D tiskárny a firmwarem QMK. Novinkami jsou dvojice tlačítek, jimiž půjde také otáčet, a volitelná opěrka ruky. Funkcionalita firmwaru je rozšířena o gesta, vrstvy a možnost konfigurace za běhu. Schémata a kód jsou jako obvykle na GitHubu. A+ půjde předobjednat za 99 CAD (bez dopravy a cla/DPH).

    |🇵🇸 | Komentářů: 3
    14.8. 14:33 | IT novinky

    Prusa Research představil nové modely svých 3D tiskáren: Prusa XL+, CORE One+ (Gen 2) a CORE One L+.

    Ladislav Hagara | Komentářů: 1
    14.8. 13:33 | Nová verze

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.64. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    14.8. 03:44 | Nová verze

    NVIDIA na konci ledna vydala v beta verzi nativního linuxového klienta své cloudové herní služby GeForce NOW. Včera oznámila ukončení beta verze a oficiální podporu Linuxu.

    Ladislav Hagara | Komentářů: 0
    14.8. 02:33 | Nová verze

    Byla vydána nová verze 3.5.0 nástroje pro inkrementální kopírování souborů rsync (Wikipedie). Přehled oprav a vylepšení v souboru NEWS. Řešeno je 33 zranitelností.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2401 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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: 879×
    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.