Portál AbcLinuxu, 9. května 2024 02:58


Dotaz: CZ2UTF skript

3.12.2005 17:46 fakenickname | skóre: 42 | blog: fakeblog
CZ2UTF skript
Přečteno: 65×
Odpovědět | Admin
Zdravíčko, vždycky jsem chtěl mít program, který by mi umožnil nahradit všechny české znaky v textu jejich unicode ekvivalenty. Ze začátku jsem to dělal ručně, poté nahrazováním v textových editorech. Sice to funguje, ale je to dost zdlouhavé a nudné. Zkouším teď tedy napsat skript, který by mi tuto práci ulehčil. Něco jsem vymyslel, ale přijde mi, že to není ono. Sice pracuje dobře (ale když odkomentuji zakomentované řádky tak je soubor vystup.txt prázdný) ale moc se mi nezdá takový postup. Něvěděl by někdo jak to vylepšit na jednoduší formu a hlavně "udělat to tak", abych mohl používat i zakomentované řádky?
#!/bin/bash
rm vystup.txt
touch vystup.txt
cat $1 |sed s/"á"/"\á"/g > vystup.txt
cat vystup.txt |sed s/"é"/"\é"/g > vystup.txt
cat vystup.txt |sed s/"ř"/"\ř"/g > vystup.txt
cat vystup.txt |sed s/"č"/"\č"/g > vystup.txt
cat vystup.txt |sed s/"š"/"\š"/g > vystup.txt
cat vystup.txt |sed s/"ž"/"\ž"/g > vystup.txt
cat vystup.txt |sed s/"ý"/"\ý"/g > vystup.txt
cat vystup.txt |sed s/"ě"/"\Ĝ"/g > vystup.txt
cat vystup.txt |sed s/"í"/"\í"/g > vystup.txt
cat vystup.txt |sed s/"ú"/"\ú"/g > vystup.txt
cat vystup.txt |sed s/"ů"/"\ů"/g > vystup.txt
cat vystup.txt |sed s/"ť"/"\ť"/g > vystup.txt
cat vystup.txt |sed s/"ď"/"\ď"/g > vystup.txt
#cat vystup.txt |sed s/"Á"/"\Á"/g > vystup.txt
#cat vystup.txt |sed s/"É"/"\É"/g > vystup.txt
#cat vystup.txt |sed s/"Ř"/"\Ř"/g > vystup.txt
#cat vystup.txt |sed s/"Č"/"\Č"/g > vystup.txt
#cat vystup.txt |sed s/"Š"/"\Š"/g > vystup.txt
#cat vystup.txt |sed s/"Ž"/"\Ž"/g > vystup.txt
#cat vystup.txt |sed s/"Ý"/"\Ý"/g > vystup.txt
#cat vystup.txt |sed s/"Ě"/"\Ě"/g > vystup.txt
#cat vystup.txt |sed s/"Í"/"\Í"/g > vystup.txt
#cat vystup.txt |sed s/"Ú"/"\Ú"/g > vystup.txt
#cat vystup.txt |sed s/"ň"/"\ň"/g > vystup.txt
#cat vystup.txt |sed s/"Ů"/"\Ů"/g > vystup.txt
cat vystup.txt |sed s/"Ť"/"\Ť"/g > vystup.txt
cat vystup.txt |sed s/"ó"/"\ó"/g > vystup.txt
cat vystup.txt |sed s/"Ó"/"\Ó"/g > vystup.txt
#cat vystup.txt |sed s/"Ň"/"\Ň"/g > vystup.txt
#cat vystup.txt |sed s/"Ď"/"\Ď"/g > vystup.txt
A protože mi ábíčko automaticky převádí unicode hodnoty ve skriptu, tak přikládám jěště screenshot.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.12.2005 18:00 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: CZ2UTF skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš to udělat jedním sedem
sed 's/é/&.../; s/ř/&.../; ...' nebo mít (přehlednější) tabulku
é &...
ř &...
a z té vygenerovat ten sed skript
sed "$(sed -r 's/^ *([^ ]+) +([^ ]+) *$/s|\1|\2|g/' tabulka.txt)" soubor.html
PS: & se v html píše &

PPS: je možné, že něco takového zvládne recode.
3.12.2005 19:07 Pmx
Rozbalit Rozbalit vše Re: CZ2UTF skript
...něco takového zvládne recode
a iconv
3.12.2005 20:00 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: CZ2UTF skript
Díky moc, udělal sem to jedním sedem a po několika pokusech už to funguje přesně tak jak jsem chtěl..

#!/bin/bash
sed 's/á/\á/g; s/é/\é/g; s/ř/\ř/g; s/č/\č/g;
s/š/\š/g; s/ž/\ž/g; s/ý/\ý/g; s/ě/\ě/g;
s/í/\í/g; s/ú/\ú/g; s/ů/\ů/g; s/ť/\ť/g;
s/ď/\ď/g; s/Á/\Á/g; s/É/\É/g; s/Ř/\Ř/g;
s/Č/\Č/g; s/Š/\Š/g; s/Ž/\Ž/g; s/Ý/\Ý/g;
s/Ě/\Ě/g; s/Í/\Í/g; s/Ú/\Ú/g; s/ň/\ň/g;
s/Ů/\Ů/g; s/Ť/\Ť/g; s/ó/\ó/g; s/Ó/\Ó/g;
s/Ň/\Ň/g; s/Ď/\Ď/g' $1
Luboš Doležel (Doli) avatar 3.12.2005 19:13 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: CZ2UTF skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Wow, trochu drsný, ne? Co třeba takhle:
iconv -f latin2 -t utf8 < zdroj.txt > cil.txt
3.12.2005 19:20 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: CZ2UTF skript
ne, tohle vůbec.. potřebuju prostě převádět á na &aacute; , é na &eacute; , ř na &#345; , ....
3.12.2005 20:05 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: CZ2UTF skript
takže z toho chceš udělat HTML entity (s unicode to má pramálo společnýho)
3.12.2005 20:19 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: CZ2UTF skript
no no, přesně tak. Přiznávám se, že mám ukrutný zmatek v různých kódováních (UTF, ISO, win, ..) a nikdy sem pořádně nepochopil co a jak.

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.