2009-02-23 6 views
5

Come procederesti a tradurre un documento che contiene i seguenti riferimenti di carattere ai loro caratteri reali leggibili in uno script bash?Cambia dai riferimenti ai caratteri HTML a utf-8 in uno script bash, ad es. ā diventa

ā á ǎ à ē é ě è ī í ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü 

Questi cambiamento al fine di   ǎ à e e e e i i ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü

+0

StackOverflow permette entità HTML. Potrebbe voler modificare quello. –

+0

La mia prima risposta è usare sed, se sono solo quelle entità. La sostituzione diretta dovrebbe essere possibile in questo modo. Se vuoi che funzioni per entità arbitrarie, però, allora non riesco a pensare a qualcosa di estemporaneo (non sono una persona importante, purtroppo). –

risposta

3

Se si ha accesso a Perl allora è relativamente semplice:

perl -ne 'binmode STDOUT,":utf8";s/&#([0-9]*);/pack("U",$1)/eg;print' \ 
    document.html 

Esempio:

#!/bin/bash 
html2utf8() { 
    perl -ne 'binmode STDOUT, ":utf8"; s/&#([0-9]*);/pack("U",$1)/eg; print' 
} 
echo 'testing 1 ā 2 Ĭ 3 ē' | html2utf8 

Produce:

testing 1 ā 2 Ĭ 3 ē 
+0

Sì, ho accesso a perl, quindi è probabilmente il modo più facile e più accurato per farlo. Sinceramente, l'intero progetto sarebbe comunque meglio realizzato in perla –

Problemi correlati