Kodovani cestiny
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Čtvrtek Prosinec 23 19:20:44 CET 1999
11314 na senior.cz (Lub_Lau) writes:
> Jelikoz se tyto problemy ztraty puvodniho obsahu se mi obcasne
> opakuji, potrebuji popis rozdilu znakovych sad (nemyslim tim,
> konkretni znakove tabulky prislusnych sad kodovani) zvlaste v
> kritickych mistech, kde neexistuje konkretni znak z prevadene
> znakove sady.
Vezmete zdroj znaku (cstocs), vse smichejte (cut -c6- *.enc),
vydestilujte (sort -u) a z vysledneho produktu vyberte jen to
potrebne:
$ cut -c6- /usr/lib/cstocs/*.enc | sort -u > znaky
To pak predejte AWK skriptu tabulka.awk:
$ awk -f tabulka.awk znaky > tabulka.txt
Soubor tabulka.txt popisuje ony rozdily znakovych sad. (Kvuli rozsahu
349 radek uvadim jen zacatek a konec).
$ cat tabulka.txt
1250 1252 ascii cork il1 il2 kam koi8 mac macce pc2 vga symbol
+ + + + + + + + + + + + 0
+ + + + + + + + + + + + 1
...
+ + + + + Zacute
+ + + + + zacute
+ + + + + + + Zcaron
+ + + + + + + zcaron
$ cat tabulka.awk
BEGIN {
nsad = 12;
sada[0] = "1250"; sada[1] = "1252"; sada[2] = "ascii"; sada[3] = "cork";
sada[4] = "il1"; sada[5] = "il2"; sada[6] = "kam"; sada[7] = "koi8";
sada[8] = "mac"; sada[9] = "macce";sada[10]= "pc2"; sada[11]= "vga";
for (i = 0; i < nsad; i++)
{
nacti(sada[i]);
printf("%-6s", sada[i]);
}
print "symbol";
}
{
for (i = 0; i < nsad; i++)
printf("%-6s", znak[sada[i],$1]);
printf("%s\n", $1);
}
function nacti(sadaf) {
soubor = sadaf ".enc";
while (getline < soubor)
znak[sadaf,$2] = "+";
close(soubor);
}
Za spravnost nerucim, napsal jsem to narychlo. Jina kodovani, zmeny
formatu, jine adresare, ... si kazdy dodela podle svych potreb.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux