karakterkodoloas iso-8859-2 -> utf-8 fajl atnevezes

Fórumok

karakterkodoloas iso-8859-2 -> utf-8 fajl atnevezes

Hozzászólások

Sziasztok!
Valakinek van -e arra otlete, megoldasa, hogy hogyan lehet az iso-8859-2 karakterkodolassal letrehozott fajl neveket egy csapasra atkonvertalni, atnevezni utf-8 kodolasura, vagy az ekezetes kararaktereket az ekezet nelkulire kicserelni?
(pl.: Van egy konyvtaram, amibe file-ok, alkonyvtarak vannak.
Ezeknek a fajloknak a neveit akarom atkonvertalni utf-8 -ra lehetoleg rekurzivan a konyvtar teljes tartalmat...)

Koszonom.

find parancs a bejáráshoz, kovertáláshoz infó pl itt:

http://www.gentoo.org/doc/en/utf-8.xml#doc_chap3

convmv parancs pont erre való, Panther linkjénél is ezt írják.

A find paranccsal is valahogy nagy nehezen összehegeszthető, csak vannak buktatói, például kell a -nodepth opció, különben átnevez egy könyvtárt de utána még a régi néven hivatkozik rá amikor a benne lévő fájlokat keresi. Szóval a convmv sokkal egyszerűbb és pont erre lett kitalálva, tehát valószínűleg sima ügy.

Lehet bennem van a hiba, de en aztan nem tudtam kibogaraszni, hogy parancssorosan hogy inditom el ezeket.
Valaki tud adni egy mintat?
Van egy konyvtaram es abban minden filet at akarok nevezni (rekurzivan) iso-8859-2 rol utf-8 ra.
Probaltam a convmv-t, es a detoxot is, de nem tudtam elocsalni jo megoldast. Mindket pelda erdekelne, koszonom.

[code:1:58687abeb6]#!/bin/bash

DIR=.

if [[ "$1"]]; then DIR="$1"; fi

cd "$DIR"

IFS=$'\n' # soremeles az elvalasztas
for i in `ls -1`; do
convmv -f iso-8859-2 -t utf-8 "$i"
done

# rekurzio
for i in `ls -1`; do
[[ -d "$i" ]] && "$0" "$i"
done
[/code:1:58687abeb6]

Azért éles használat előtt teszteld, mert ezt csak úgy leírtam, nem próbáltam ki. A script legyen benne a $PATH-ban, és úgy, vagy teljes elérési úttal hívd meg.

[quote:2026a37649="Panther"][code:1:2026a37649]#!/bin/bash

DIR=.

if [[ "$1"]]; then DIR="$1"; fi

cd "$DIR"

IFS=$'\n' # soremeles az elvalasztas
for i in `ls -1`; do
convmv -f iso-8859-2 -t utf-8 "$i"
done

# rekurzio
for i in `ls -1`; do
[[ -d "$i" ]] && "$0" "$i"
done
[/code:1:2026a37649]

Azért éles használat előtt teszteld, mert ezt csak úgy leírtam, nem próbáltam ki. A script legyen benne a $PATH-ban, és úgy, vagy teljes elérési úttal hívd meg.

-Koszonom segitseged, de en meg scriptet nem irtam, es meg nem igazan latom at, sajna nincs idom most tobbet foglalkozni ezzel, egyenlore marad a kezzel atnevezes, aztan majd kibagaraszom, kossz...

[quote:ca6c6dba4a="lepton"]
-Koszonom segitseged, de en meg scriptet nem irtam, es meg nem igazan latom at, sajna nincs idom most tobbet foglalkozni ezzel, egyenlore marad a kezzel atnevezes, aztan majd kibagaraszom, kossz...

valamikor el kell kezdeni.:twisted:

man bash

es ott megtalalod minden ismeretlen dologra a magyarazatot. ha meg nem irtal scriptet, akkor itt 1 orat eltolthetsz, mire megerted, es kozben tobbet tanulsz, mint az elmult honapban osszesen:)

man convmv:
-r recursively go through directories
szóval nem kell shell-ben rekurziót körégányolni, hanem egyszerűen:

convmv -f latin2 -t utf8 -r könyvtárneveamitbeakarszjárni

ez nem csinál semmit, csak kiírja hogy mit tenne, és ha az szimip, akkor egy --notest opciót is adj neki.

No ja, tényleg nem próbáltam ki. Sőt, fel sem tettem :)

Még egy nagyon fontos dolog:

csak linuxos (ext2, ext3, reiser ...) fájlrendszereken használd a convmv-t vagy bármilyen átnevező progit, windowsos fájlrendszereken semmiképp, azokon a fájlneveknek nem szabad változniuk, hiszen a win95 óta mindenképpen UTF-16-ban vannak, itt a Linux kernelt kell megkérni, akivel eddig remélhetőleg iocharset=iso8859-2 opcióval csatoltad ezeket, hogy mostantól viszont iocharset=utf8, és akkor jók lesznek az ékezetek utf-8 környezetben.

[quote:18ecb9f4ec="egmont"]man convmv:
-r recursively go through directories
szóval nem kell shell-ben rekurziót körégányolni, hanem egyszerűen:

convmv -f latin2 -t utf8 -r könyvtárneveamitbeakarszjárni

ez nem csinál semmit, csak kiírja hogy mit tenne, és ha az szimip, akkor egy --notest opciót is adj neki.

-ok, ki is probaltam, le is futtattam --notest -el, at is konvertalta a file neveket, de valami miatt megse jellennek meg a karakterek rendesen.(krushader,gnome commander) Az a baj, hogy valakitol kaptam egy rakas windows alatt letoltott docot, es ezeket akarom olvasgatni, de fajl atnevezes nelkul nem boldogulok.
Atmeneti megoldaskent, most azt csinaltam, hogy terminalba at allitom a karakterkodolast, ekkor mc-bol a doc, stb elindul, illetve a html is miutan atalitjuk az alapertelmezett html-open "esemenyt"(extension file). Ez egyenlore jo megoldas, de ha majd tudok ra idot szakitani kibogaraszom a convmv, detox-ot is. Kosz.

Üdv!
nem nyitok új témát, mert nekem is szinte ugyenez a gondom, azzal a különbséggel, hogy én már átmásoltam simán 1 windowsos meghajtórol a reiserre, ahol alapból ugye utf8 van.
Próbálgattam minden itt leírt megoldást, de a convmv kiírta, hogy már utf8ban van... megpróbáltam akkor vissza iso-8859-2 -be konvertálni, de ott meg:
"iso-8859-2 doesn't cover all needed characters for: ..."
egyenlőre csak egy fájlal próbálkoztam, de nem jött össze.
esetleg valami tipp?
Vagy nekem a detox a megoldás, mert azt nemsikerült lefordítani a rendszerre. ( ubuntu 6.06 )