Karaktercsere

Fórumok

Karaktercsere

Hozzászólások

Kosz a segitsegeket, az iconv-val minden tovabbi nelkul ment.

Sziasztok!

A kovetkezo a problemam: van egy DOS-bol szarmazo file-om, ami a Linuxon egyes magyar karaktereket (á,é stb.) nem mutat vagy nem mutat megfeleloen.
Tudtok-e olyan scriptet vagy bash ill. awk parancsot, amivel a hibas karakterek kicserelhetok? Jo lenne, ha a karaktereket a Clipperhez hasonloan valahogy igy lehetne megadni: chr(5) stb.

Kosz a valaszokat

Lehet, hogy jó lenne úgy, de remélem így is jó: \034. Ha igen, akkor man tr. Vagy vedd elő a perl tudásodat, amelynek szintén van ilyenje.

Ehhez igazán nem értek, de ellestem egy ilyet:
[code:1:665cd3f672]printf '\033%%G'[/code:1:665cd3f672]

E parancs kiadása után nálunk minden ékezetes dolog rendesen jelenik meg konzolon.

izé... bocs, ez nem változtatja meg a karaktereket, csak a megjelenésüket.

Hi!

Itt egy kis "tr" -es Perl kód:
[code:1:01b8ebcada]
#!/usr/bin/perl -w
# codepage conv
#
open (STDIN, "-") or die "Error opening STDIN: $!";
while (<STDIN>) {
chomp;
tr [\374\332\351\325\365\311\315\366\326\334\341\355\363\372\301\323\333\373]
[\201\351\202\212\213\220\326\224\231\232\240\241\242\243\265\340\353\373];

print "$_\015\012";
}
[/code:1:01b8ebcada]
Ez egy pipe prg.
1250 --> 852 konverzió, de ennek mintájára lehet akármit konvertálni,
még a CR+LF -et is lehet csak LF -re állítani.

ELaci

[quote:f509bdca42="cln"]Hi!

Itt egy kis "tr" -es Perl kód:
[code:1:f509bdca42]
#!/usr/bin/perl -w
# codepage conv
#
open (STDIN, "-") or die "Error opening STDIN: $!";
while (<STDIN>) {
chomp;
tr [\374\332\351\325\365\311\315\366\326\334\341\355\363\372\301\323\333\373]
[\201\351\202\212\213\220\326\224\231\232\240\241\242\243\265\340\353\373];

print "$_\015\012";
}
[/code:1:f509bdca42]
Ez egy pipe prg.
1250 --> 852 konverzió, de ennek mintájára lehet akármit konvertálni,
még a CR+LF -et is lehet csak LF -re állítani.

ELaci

Ugye nem veszed zokon, ha kicsit túlzónak érzem a dolgot? Ha a fenti perl programból egyedül a tr sort tartom meg, akkor már készen is vagyok, és nem kell hozzá perl, meg programozás, ilyesmi:
[code:1:f509bdca42]
tr '[\374\332\351\325\365\311\315\366\326\334\341\355\363\372\301\323\333\373]'
'[\201\351\202\212\213\220\326\224\231\232\240\241\242\243\265\340\353\373]' < eredeti > kodolt
[/code:1:f509bdca42]
Vagy a fentebb már emlegetett recode ill. iconv parancsokkal :-)

Ugye nem veszed zokon, ha kicsit túlzónak érzem a dolgot? Ha a fenti perl programból egyedül a tr sort tartom meg, akkor már készen is vagyok, és nem kell hozzá perl, meg programozás, ilyesmi:

Nem veszem zokon, mert én ezt a "tr" -t egy perl script részeként használtam, tehát a perl adott volt és a másik lehetőség hogy dos-os (win -es) perl -ben is működik, mivel ugye ott nincs "tr". :)

ELaci

Kosz a valaszokat, mar csak az lenne a kerdesem, honnan tudom, melyik karakternek melyik szam felel meg, pl. '\025' -> ? persze az oszes hol talalhato listaban?

[quote:9fe568f59e="aszabo"]Kosz a valaszokat, mar csak az lenne a kerdesem, honnan tudom, melyik karakternek melyik szam felel meg, pl. '\025' -> ? persze az oszes hol talalhato listaban?

ftp://ftp.unicode.org/Public/MAPPINGS/

Zsiraf

[quote:a69b462759="aszabo"]Sziasztok!

A kovetkezo a problemam: van egy DOS-bol szarmazo file-om, ami a Linuxon egyes magyar karaktereket (á,é stb.) nem mutat vagy nem mutat megfeleloen.
Tudtok-e olyan scriptet vagy bash ill. awk parancsot, amivel a hibas karakterek kicserelhetok? Jo lenne, ha a karaktereket a Clipperhez hasonloan valahogy igy lehetne megadni: chr(5) stb.

Kosz a valaszokat

Amugy telleg: recode pc852..l2 vagy valami hasonlo a legegyszerubb..

Zsiraf