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í
×
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    26.12. 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    26.12. 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

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

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 30
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (36%)
     (1%)
     (18%)
     (1%)
     (1%)
     (1%)
     (13%)
     (12%)
     (16%)
    Celkem 146 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    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: 768×
    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.