Szkript segítség kéne

Fórumok

Sziasztok, a következő a gondom : Van kb. 500 zenefájlom, amiket torrentről töltöttem le, közöttük sok olyan aminek a nevében ékezetes karakter volt és ezeket valamiért a ktorrent letöltéskor egy téglalap alakú karakterrel helyettesítette. Így most nem tudom őket lejátszani. Erre szeretnék valami szkriptet, hogy végigmegy az összes fájlon és kitörli belőle ezeket a karaktereket, a fél napom ráment de nem jött össze... Valaki tudna esetleg segíteni? Esetleg azt is meg tudnátok mondani hogy hogy lehet ezt kiküszöbölni, hogy ne így töltse le legközelebb?

Szerk.: ezek a téglalap alakú karakterek krusaderben jelennek meg, ls parancs hatására az ékezetes betűk helyett kérdőjelek vannak.

Hozzászólások

Nálad mitől van azt nem tudom, de mikor először tettem fel ubuntu-t az angol nyelvel és magyar bill-t állítottam be, akkor mással de hasonló/ugyanez a probléma merült fel. Magyarra cserélve már nem volt az ékezettel gond. De maradt még elég megoldatlan dolog amit nem tudok. Főleg, hogy 2 hete vagyon egy Ubuntu büszke tulajdonosa/használója :))

Milyen karakterek vannak benne? Minden ékezetest ugyanazzal a téglalappal helyettesítette (ekkor tr-rel vagy sed-del egyszerű kiszedni), vagy valamilyen más kódolás szerinti ékezetesekkel (ekkor karakterkódolást kell megváltoztatni)? (ls kimenetét nézd meg hexaeditorral.)

Igen, minden ékezetes helyére ugyanazt a téglalap alakú karaktert helyettesíti. Nem tudom ide beszúrni mert itt az oldalon csak 1 kérdőjel jelenik meg.

-----------------------------------------------------------------------------------------------------------------------------
AMD Athlon 64 X2 Dual Core 6000+, Nvidia Geforce 8500GT 512Mb, 2GB DDR2-800Mhz, MSI K9 Neo v3, Debian "lenny",2.6.24-amd64

Milyen eredményt ad a következő parancs:

ls | iconv -f latin2 -t utf8

Ha jól írja ki a fájlneveket, akkor szólj, és összedobunk egy scriptet, ami jóra átnevezi a fájlaidat.

Ez jól kiírja a filenveket igen. Akkor meg tudnád írni azt a szkriptet? Előre is köszi!

-----------------------------------------------------------------------------------------------------------------------------
AMD Athlon 64 X2 Dual Core 6000+, Nvidia Geforce 8500GT 512Mb, 2GB DDR2-800Mhz, MSI K9 Neo v3, Debian "lenny",2.6.24-amd64

Gyakorlatilag hasonló cipőben járok. Most csináltam meg magamnak is.

Először is: a könyvtárnevek ne tartalmazzanak ékezetet!!! Sorry, lehet, hogy túl nagy kérés. (Szerintem gyorsan rá lehet jönni, hogy ez hol okozna problémát.) Hátha az utánam postolók ki tudják ezt javítani.

A zene mappádból add ki a következő parancsot:

{ find | while read ; do echo mv \"$REPLY\" \"`echo "$REPLY" | iconv -f latin2 -t utf8`\" ; done; } > rename.sh

Eddig nem csináltunk semmit. Ezután szerintem nézd át a rename.sh-t, hátha valahol eredetileg is jó volt az ékezet, mert akkor ez csak elrontja. A szerkesztésére semmiképp sem ajánlok vi-t, mert képes és nem utf8-ban jeleníti meg a fájlt (túl intelligens), használj mcedit-et. Az a jó, ha minden sorban azt látod, hogy az első név krixkrax, a második pedig jó. Ahol fordítva lenne, azon sorokat töröld ki.

Ezután még mindig a zene mappádban add ki a következőt:

sh rename.sh

Panaszkodni fog, ha egy fájlnévben nincs ékezet, mivel akkor ugyanarra kellene átnevezni. Ez nem gond.

Szuper, ez működik, nagyon köszönöm :)

-----------------------------------------------------------------------------------------------------------------------------
AMD Athlon 64 X2 Dual Core 6000+, Nvidia Geforce 8500GT 512Mb, 2GB DDR2-800Mhz, MSI K9 Neo v3, Debian "lenny",2.6.24-amd64

Szívesen. Időközben megnéztem a lentebb brekeke által ajánlott utf8-migration-tool-t. Elég könnyen használható dolognak tűnik, és mindent megcsinál. Installálás után Applications, Rendszereszközökhöz települ, és pár Next-et kell csak nyomni, és a home könyvtáradban mindent átnevez jóra.

Ez jó ötlet, jó lenne egy ilyen hupwiki oldal, én úgyis hülye vagyok az ilyen szkriptekhez...

-----------------------------------------------------------------------------------------------------------------------------
AMD Athlon 64 X2 Dual Core 6000+, Nvidia Geforce 8500GT 512Mb, 2GB DDR2-800Mhz, MSI K9 Neo v3, Debian "lenny",2.6.24-amd64

Nem tudja valaki, hogy a sed regexp-eknél milyen sorrendben veszi a karaktereket intervallumoknál ([a-z])? Ha karakterkód szerint menne, akkor lenne szkriptem, de úgy tűnik, az ékezetesek benne vannak az [a-z]-ben, érdekes módon még akkor is, ha en_US-ra állítom a locale-t.

Debianra/Ubuntura létezik egy ilyen csomag:
utf8-migration-tool

This wizard upgrades legacy system locales to their UTF-8
equivalent. It also informs users whenever files in their
home directory still utilize legacy encodings.
--
the tide is turning

Eszembe se jutott keresni a synapticban :/

-----------------------------------------------------------------------------------------------------------------------------
AMD Athlon 64 X2 Dual Core 6000+, Nvidia Geforce 8500GT 512Mb, 2GB DDR2-800Mhz, MSI K9 Neo v3, Debian "lenny",2.6.24-amd64