Portál AbcLinuxu, 19. května 2024 10:02


Dotaz: Překódování chybných názvů adresářů a souborů

25.4. 17:45 majales | skóre: 29 | blog: Majales
Překódování chybných názvů adresářů a souborů
Přečteno: 436×
Odpovědět | Admin
Zdravím. Mám jednom archivu stovky adresářů a souborů s pomršenou českou diakritikou. Vypadá to přesně takto. Unicode zobrazený jako win-1250, čili místo 'á' je tam 'á' a místo 'č' je tam 'ÄŤ' a tak dále. Netušíte někdo jak tohle překonvertovat jednosduše do utf-8?

Řešení dotazu:


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

Odpovědi

25.4. 19:01 jejda | skóre: 24 | blog: jejda
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdysi jsem se setkal s něčím podobným a řešil jsem to sedem. Nejsou tam všecky znaky, no čitelnější to asi bude.
sed -e 's/Ĺ®/Ů/g' \
 -e 's/ĹŻ/ů/g' \
 -e 's/ÄŹ/ď/g' \
 -e 's/Ăť/Ý/g' \
 -e 's/Ă˝/ý/g' \
 -e 's/Ň/Ň/g' \
 -e 's/Ĺ\x88/ň/g' \
 -e 's/Ĺ /Š/g' \
 -e 's/š/š/g' \
 -e 's/“/“/g' \
 -e 's/„/„/g' \
 -e 's/Ĺ˝/Ž/g' \
 -e 's/Ĺľ/ž/g' \
 -e 's/ÄŚ/Č/g' \
 -e 's/ÄŤ/č/g' \
 -e 's/ĹĄ/ť/g' \
 -e 's/Ă\%x81/Á/g' \
 -e 's/Ăł/ó/g' \
 -e 's/Ăş/ú/g' \
 -e 's/Ĺ\%x98/Ř/g' \
 -e 's/Ĺ™/ř/g' \
 -e 's/á/á/g' \
 -e 's/Äš/Ě/g' \
 -e 's/Ä›/ě/g' \
 -e 's/Ă­/í/g' \
 -e 's/Ă©/é/g' \
 -e 's/…/…/g' \
 -e 's/—/—/g' \
 -e 's/‚/,/g'
třeba existuje něco lepšího, nevím.
25.4. 19:51 pavele
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
https://www.linuxexpres.cz/praxe/kodovani-textu-na-pocitaci
Řešení 1× (Gréta)
25.4. 21:22 jejda | skóre: 24 | blog: jejda
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Ten convmv vypadá že umí přejmenovávat soubory
$ convmv -f utf8 -t cp1250 --notest Äš
mv "./Äš"       "./Ě"
Ready! I converted 1 files in 0 seconds.
dík za tip!
Gréta avatar 25.4. 23:18 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů

jj to vypadá jako řešení :O ;D

navic to de i pustit rekurzivně normálně pomocí -r, takže to je asi jakoby přesně to co majales potřebuje :D ;D

hele manual

greta@krabice:~/pokus/tst$ tree
.
└── bla
    └── SmrtBanderovskĂ˝mZrĹŻdám

2 directories, 1 file

greta@krabice:~/pokus/tst$ convmv -r -f utf8 -t cp1250 --notest ./
mv "./bla/SmrtBanderovskĂ˝mZrĹŻdám"    "./bla/SmrtBanderovskýmZrůdám"
Ready! I converted 1 files in 0 seconds.

greta@krabice:~/pokus/tst$ tree
.
└── bla
    └── SmrtBanderovskýmZrůdám

2 directories, 1 file
26.4. 22:14 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Nějak nechápu ten směr - bral jsem to vždy jako -f (From) -t (To) . Copak je to platné utf-8 a proč to konvertuji do cp1250, když jsem na linuxu. Hlava mi to nebere. Může to někdo vysvětlit?
27.4. 00:42 pavek
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
tipl bych si ze ne vse lze konvertovat do nepuvodni sady vzniku textu, napadlo te to taky?
27.4. 08:02 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Pokiaľ to má na FS pripojenom bez Unicode (napr. s Latin2 alebo Win1250), tak mi to dáva zmysel.
Jendа avatar 25.4. 22:16 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Pro jednorázovku bych také takto vyjmenoval ty případy a nahradil.

Pokud by hrozilo, že to bude něco rozsáhlejšího, a například by bylo potřeba podporovat i jazyky, které vůbec neznám, tak bych si asi napsal skript (za sebe v Pythonu), který by provedl tu skutečnou transformaci inverzně -- vzal by ty znaky, zakódoval je jako Win1250 bajty, a dekódoval jako UTF-8.
25.4. 20:09 X
Rozbalit Rozbalit vše Re: Překódování chybných názvů adresářů a souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
iconv

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.