Portál AbcLinuxu, 4. května 2025 17:29

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
5.4.2005 03:51 Honza Král | skóre: 3 | Praha
Rozbalit Rozbalit vše sed
Odpovědět | Sbalit | Link | Blokovat | Admin
lepsi nez spousta prikazu s/x/y/ je lepsi pouzit jeden: bud sed -e 'y/abcd/ABCD/' nebo tr 'abcd' 'ABCD'
5.4.2005 07:38 kavol
Rozbalit Rozbalit vše Re: sed
jo, když jsem na to koukal, tak jsem se taky divil, proč používá sed a ne tr :-) ... nicméně pak jsem si vzpomněl, jak jsme to řešili s kámošem, a že asi nejlepší je použít program recode (aneb proč opisovat do tr půlku kódové tabulky, když už to udělal někdo za mě a flexibilněji, mohu překódovat z více různých sad; pravda, trošku kanón na vrabce ;-))

řešení s findem je imho blbost, stejně jako používat na to dva skripty; máme to vyřešené pomocí rekursivní funkce

bohužel teď nemám po ruce příslušný zdroják, takže jenom nastíním ideu: procházení se děje pomocí for *, testuje se, zda jde o adresář, a pokud ano, tak funkce zavolá sama sebe na ten adresář, potom dojde k přejmenování (tzn. adresář se přejmenuje, až se z něj vyleze ven, nedojde k nekonsistenci)

p.s. a odstraňování diakritiky považuju za pěknou blbost - zrušením všech ne-ASCII (7bit) znaků bych uvedl do absolutního chaosu např. svoje veškeré ruské písničky - pojmenované samozřejmě v azbuce, od čeho máme UTF8 :-)

p.p.s. taky vás tak štvou lidi, co v angličtině (i jinde) místo apostrofu píšou čárku nad písmenem, takže místo ASCII se na jejich věc (obvykle právě jméno souboru) použije nejbližší sada, která tento "spacing modifier" obsahuje, a tudíž prudce klesá strojová zpracovatelnost (objevuje se problém s překódováním a především to, že čárka není apostrof - třeba konverze ohraničení apostrofy na korektní uvozovky)? :-(
5.4.2005 08:34 kavol
Rozbalit Rozbalit vše Re: sed
eh, nějak jsem přehlíd, že už je tu i realizace toho, co navrhuju (až na to recode ;-)) ... mno, řekl bych, že by se to dalo i zjednodušit, ale tak nějak jsem to myslel ...
5.4.2005 04:05 Honza Král | skóre: 3 | Praha
Rozbalit Rozbalit vše redundance
Odpovědět | Sbalit | Link | Blokovat | Admin
s tim findem je to divny, co kdyz prejmenujes adresar, pak vubec nepujdou zmenit soubory uvnitr... (a krome toho je pak zbytecna ta tva rekurze)...

navrhuju tohle:
#!/bin/bash

function strip_diak {
  echo "$1" | tr 'ěščřž ..' 'escrz_..'
}

function diak {
  new_name="$( strip_diak "$1" )"
  mv -f "$1" "$new_name" || return 1

  cd "$new_name" || return 1

  for fajl in *; do
    if [[ -d "$fajl" ]]; then
      diak "$fajl"
    else
      new_name="$( strip_diak "$fajl" )"
      if [[ "$new_name" != "$fajl" ]]; then
        mv -f "$fajl" "$new_name" || echo "mv error" && return 1
      fi
    fi
  done

  return 0
}

diak "${1:-$PWD}" || exit 1

exit 0
Valoun avatar 5.4.2005 11:33 Valoun | skóre: 30 | blog: Psavec | Středočeský kraj
Rozbalit Rozbalit vše Re: redundance
To je vsechno moc pekny ja ovsem narazil na to, ze nevim jak do toho skriptu
echo "$1" | tr 'ěščřž ..' 'escrz_..'
zapsat, ze chci prelozit patricne unikodove znaky jako jsou äåöõü atd.
23.5.2005 16:16 Krakonoš | skóre: 17 | Nová Ves v Horách
Rozbalit Rozbalit vše Re: redundance
Tak tohle sem presne potreboval. Ale nejako se mi nepovedlo to dat do chodu, ale ziskal jsem inspiraci a za chvilenku napsal vlastni scriptik, ktery resi

prejmenovani a rekurzivni prochazeni aktualniho stromu (stacii :]) kolizi jmen - pridava pripadne nakonec .cislo pokud je to nutne

Tak snad sem na nic nezapomel :

#!/bin/bash

function strip_diak { echo "$1" | tr '¿¿¿¿¿ýáíé¿¿¿¿¿¿¿¿ÝÁÍÉ¿¿¿' 'escrzyaiedtnESCRZYAIEDTN' }

function rename { for file in *; do new_name="$( strip_diak "$file" )" if [[ "$file" != "$new_name" ]]; then if [[ -e "$new_name" ]]; then n=0 while [[ -e "$new_name.$n" ]]; do n=`expr $n + 1` done new_name="$new_name.$n" fi mv "$file" "$new_name" fi if [[ -d "$new_name" ]]; then cd $new_name rename cd .. fi done }

rename

exit 0

ou,..koukam, ze to neskouslo ty znaky,...tos nevadi, si je tam dopishte :]
5.4.2005 08:59 Jiri Bajer | skóre: 34 | blog: Sarimuv koutek | Praha
Rozbalit Rozbalit vše Whitespaces
Odpovědět | Sbalit | Link | Blokovat | Admin
IMHO se find -print nedokaze korektne vyporadat s whitespaces v nazvech souboru - nebylo by lepsi pouzit find -print0 | xargs --null?

Tak jak tak: diky za prispevek, podle me je cennejsi komplet zdrbnout tvuj kod a vymyslet lepsi, nez mlcet a nechat vsechny, at znovu vynalezaji kolo! B-)
5.4.2005 11:29 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Práva
Odpovědět | Sbalit | Link | Blokovat | Admin
Na přejmenování souboru nepotřebuju právo zápisu do toho souboru ;-)
5.4.2005 11:30 honza
Rozbalit Rozbalit vše existuje soubor ?
Odpovědět | Sbalit | Link | Blokovat | Admin
Co se stane mám-li v jednom adresáři vykaz.txt a výkaz.txt :-)
5.4.2005 14:19 Zbyněk Petr (Zboňa) | skóre: 6 | blog: zbona | Brno / Vyškov
Rozbalit Rozbalit vše Re: existuje soubor ?
Aha, tak na to jsem pozapomněl. :-)
5.4.2005 15:21 kavol
Rozbalit Rozbalit vše Re: existuje soubor ?
používání -f je špatné, špatné, špatné ...

... mamííí, ploč ťam má ťeň páň -f míšto -i? :-)
5.4.2005 15:10 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Hm
Odpovědět | Sbalit | Link | Blokovat | Admin
Kdyby měl někdo dojem, že tohle je moc složité a nevadilo by mu zjednodušit zadání na: ,,hromadné zrušení adresářového stromu``, pak milerád pomohu radou :-)
Copak toho není dost?
5.4.2005 18:27 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Hm
Otočení kolečkem nahoru přepíná plochu směrem doprava

Ať žije výchozí nastavení WindowMakeru :-)
-- Nezdar není hanbou, hanbou je strach z pokusu.
18.1.2013 23:19 Lukas
Rozbalit Rozbalit vše Re: Hromadné zrušení diakritiky v adresářovém stromu
Odpovědět | Sbalit | Link | Blokovat | Admin
Ahoj vim ze tohle je hodne stare ale nevite nekdo jak se ta diakritika da odstranit pres PHP jo a jinak momentalne pouzivam XAMPP server a Windows 7... je sice hezke ze pres iconv a spoustu dalsi funkci odstranim diakritiku ale problem je s PHP rename funkci ve ktere nemohu prejmenovavat slozky a soubory s diakritikou..takze hlavni problem je prave v prejmenovani dejte mi prosim vedet na email: lukas.stribrny@hotmail.com

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.